Skriv ut den kompletta sökvägen med response.write och dubbelkolla.
kortare kod: http://www.webforum.nu/showthread.php?s=&postid=1005603#post1005603
16 svar · 539 visningar · startad av timedia
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å?
Skriv ut den kompletta sökvägen med response.write och dubbelkolla.
kortare kod: http://www.webforum.nu/showthread.php?s=&postid=1005603#post1005603
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")))
Samma fel även på mappar utan mellanslag i namnet?
Ja, samma fel.
e:\www\admin326\tuser982\html\bild\Villa\clock.jpg
Ingen som vet :q
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_
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")))
SER det nu :i
Nu blir ju resultatet 'th_Villa/clock.jpg' inte Villa/th_clock.jpg. Hur kommer jag rundt detta??
hmm.. dumt försök men prova:
str_filename = request.querystring("obj")
och ersätt alla querystrings med str_filename
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...
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...
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..
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...
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
kom ihåg: om du har bilder på tex:
"test/bilder/hej.jpg" i din querystring kommer du få error igen...