webForumDet fria alternativet

Delete med FSO?

ASP

16 svar · 539 visningar · startad av timedia

Medlem sedan maj 2001420 inlägg
Frågan#1

Den säger att den inte hittar filen, men vad jag kan se så är sökvägen rätt. Sökvägen till bilderna ligger korrekt i querystringen.

Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set fil1 = fso.GetFile(Server.mappath(Request.querystring("obj")))
Set fil2 = fso.GetFile(Server.mappath("th_"&Request.querystring("obj"))) 
Set fil3 = fso.GetFile(Server.mappath("big_"&Request.querystring("obj")))
fil1.delete
fil2.delete
fil3.delete

fil1.close
fil2.close
fil3.close

set fso = nothing

PS! ganska säker på att det finns enklare sätt att göra detta på?

Medlem sedan juni 200032 967 inlägg
#2

Skriv ut den kompletta sökvägen med response.write och dubbelkolla.

kortare kod: http://www.webforum.nu/showthread.php?s=&postid=1005603#post1005603

Medlem sedan maj 2001420 inlägg
#3

Sökvägen blir korrekt:
e:\www\admin326\tuser982\html\bild\Villa Premiär\clock.jpg

sen finns också bilderna th_clock.jpg och big_clock.jpg i samma mapp. Får felmeddelandet;

Microsoft VBScript runtime error '800a0035' 

File not found 

/bild/delpic.asp, line 15

line 15 : Set fil2 = fso.GetFile(Server.mappath("th_"&Request.querystring("obj")))

Medlem sedan juni 200032 967 inlägg
#4

Samma fel även på mappar utan mellanslag i namnet?

Medlem sedan maj 2001420 inlägg
#5

Ja, samma fel.
e:\www\admin326\tuser982\html\bild\Villa\clock.jpg

Medlem sedan maj 2001420 inlägg
#6

Ingen som vet :q

Medlem sedan juni 20019 519 inlägg
#7

Din kod:

Set fil2 = fso.GetFile(Server.mappath("th_"&Request.querystring("obj")))

Kollar den ju efter th_<QUERYSTRING> fil... men clock.jpg börja ju inte med th_

Medlem sedan maj 2001420 inlägg
#8

Den godtar denna och ger resultatet clock.jpg

Set fil1 = fso.GetFile(Server.mappath(Request.querystring("obj")))

,men nästa rad där bilden heter 'th_clock.jpg' hittar den inte. Är det fel att skriva såhär:

Set fil2 = fso.GetFile(Server.mappath("th_"&Request.querystring("obj")))
Medlem sedan maj 2001420 inlägg
#9

SER det nu :i
Nu blir ju resultatet 'th_Villa/clock.jpg' inte Villa/th_clock.jpg. Hur kommer jag rundt detta??

Medlem sedan juni 20019 519 inlägg
#10

hmm.. dumt försök men prova:
str_filename = request.querystring("obj")

och ersätt alla querystrings med str_filename

Medlem sedan juni 200032 967 inlägg
#11

Antagligen är det fel. Det verkar som att du skickar mappnamn i querystringen också? i så fall är ju sökvägen felaktig.

När du skriver att sökvägen blir korrekt, ja, det blir den ju om du skriver ut sökvägen från den koden som fungerade. Det var ju först när du kom till fil2 (th_...) som det gick åt pipan, då är det ju den sökvägen du måste skriva ut för att kontrollera.

Om du skickar mapp i querystring lär väl resultatet när du lagt till th_ framför bli typ:

e:\www\admin326\tuser982\html\bild\**th_**Villa Premiär\clock.jpg

Det känns inte rätt...

edit: jag skriver långsamt idag, eller så skriver andra fort...

Medlem sedan juni 200032 967 inlägg
#12

Hur kommer jag rundt detta??

Använd split() för att dela upp vid /, lägg sedan ihop igen.

Medlem sedan juni 20019 519 inlägg
#13

alltså ser din requst ut
"villa/clock.jpg"
du kan ju alltid ta split och göra en array...
Arrfil = split(request.querysring("obj"),"/")
sen är det nog bara att göra en for sats där du gör att du lägger in th_ på den sista arrFil...

Medlem sedan maj 2001420 inlägg
#14

Så här blev det när jag skrev ut:

e:\www\admin326\tuser982\html\bild\th_Villa\dodge_viper.jpg

tack för tipsen - nu måste jag försöka lära split..

Medlem sedan juni 20019 519 inlägg
#15
function textadd(str)
  fil = split(request.querystring("obj"),"/")
  for i = 0 to ubound(fil)
    if not i = 0 then
      totalfile = totalfile &"/"
    end if
    if i = ubound(fil) then
      totalfile = totalfile & str
    end if
  totalfile = totalfile & fil(i)
  next
  textadd = totalfile
end function

dåligt exempel.. men fungera :e

då kan du ändra om textadd("th_") till vad du vill...

Medlem sedan maj 2001420 inlägg
#16

KANON! Split var det jag behövde! TACK!

Arrfil = split(request.querystring("obj"),"/")

response.write Server.mappath(Arrfil(0)&"/"&Arrfil(1))

Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set fil1 = fso.GetFile(Server.mappath(Arrfil(0)&"/"&Arrfil(1)))
Set fil2 = fso.GetFile(Server.mappath(Arrfil(0)&"/th_"&Arrfil(1))) 
Set fil3 = fso.GetFile(Server.mappath(Arrfil(0)&"/big_"&Arrfil(1)))

fil1.delete
fil2.delete
fil3.delete

set fso = nothing
Medlem sedan juni 20019 519 inlägg
#17

kom ihåg: om du har bilder på tex:
"test/bilder/hej.jpg" i din querystring kommer du få error igen...

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)