Avatar billede ferstin Nybegynder
27. december 2002 - 11:08 Der er 21 kommentarer og
1 løsning

Slet fil på server

Jeg har på min IIS uploadet nogle billeder via ASP. Navnene på billederne ligger i en database, og nu vil jeg gerne have det lavet sådan, at jeg kan slette dem på serveren. Jeg kan godt slette posterne i databasen, men billederne bliver jo på serveren. Jeg har lavet dette script, men jeg får en fejlmelding på, at filen ikke kan findes. Hvad er der galt med dette:

Set rs = Server.CreateObject("ADODB.Recordset")
Query = "SELECT * FROM billeder WHERE ID=" & Request.QueryString("ID")
rs.Open Query, Connect, 1, 2


rs.Delete
rs.close
set rs = nothing

Dim billednavn
billednavn = Request.QueryString("navn")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.DeleteFile ("upload/& billednavn & ")

Response.Write "<br>Billedet er nu slettet!<br><a href='vis_billeder.asp'><br>< tilbage til billederne</a>"
Avatar billede eagleeye Praktikant
27. december 2002 - 11:11 #1
Prøv at rette denne linie:
fso.DeleteFile ("upload/& billednavn & ")

Til:

fso.DeleteFile ("upload/"& billednavn & ")
Avatar billede ferstin Nybegynder
27. december 2002 - 11:15 #2
Så får jeg:

Microsoft VBScript compilation error '800a0409'
Unterminated string constant
/upload_skabelon/slet.asp, line 50
fso.DeleteFile ("upload/"& billednavn & ")
------------------------------------------^
Avatar billede Slettet bruger
27. december 2002 - 11:15 #3
Eller prøv med:

fso.DeleteFile(Server.MapPath("upload/" & billednavn))
Avatar billede eagleeye Praktikant
27. december 2002 - 11:16 #4
Prøv dette uden & " tilsidst

fso.DeleteFile ("upload/"& billednavn)
Avatar billede ferstin Nybegynder
27. december 2002 - 11:18 #5
eagleeye> så får jeg denne:

Microsoft VBScript runtime error '800a0035'
File not found
/upload_skabelon/slet.asp, line 50
Avatar billede ferstin Nybegynder
27. december 2002 - 11:19 #6
magik> så får jeg:

Microsoft VBScript runtime error '800a01a8'
Object required: 'fso'
/upload_skabelon/slet.asp, line 49
Avatar billede Slettet bruger
27. december 2002 - 11:21 #7
Æh? Det giver jo ikke så meget mening? Har du sat det ind et andet sted end hidtil? Dit fso objekt burde jo være tilgængeligt, hvis det ser ud som ovenfor.
Avatar billede eagleeye Praktikant
27. december 2002 - 11:21 #8
Hvor ligger folderen upload i forhold til ASP filen ??
Hvis upload ligger i roden af så skal der / ind foran upload

fso.DeleteFile ("/upload/"& billednavn)
Avatar billede eagleeye Praktikant
27. december 2002 - 11:23 #9
Der skal være Server.Mappath på også...
fso.DeleteFile (Server.Mappath("/upload/"& billednavn))
Avatar billede ferstin Nybegynder
27. december 2002 - 11:24 #10
eagleeye, jeg får samme fejl, selvom jeg har skrevet / foran.

Alle billederne lægges i mappen "upload" som er en undermappe til mappen hvor slet.asp ligger.
Avatar billede ferstin Nybegynder
27. december 2002 - 11:27 #11
Jeg har rette til dette:

Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.DeleteFile (Server.Mappath("/upload/"& billednavn))

og det giver denne fejl:

Microsoft VBScript runtime error '800a0035'
File not found
/upload_skabelon/slet.asp, line 51

måske er det ikke den rigtige sti...?¿?
Avatar billede eagleeye Praktikant
27. december 2002 - 11:28 #12
Hvis det er en undermappe til det sted hvor slet.asp filen ligger skulle der ikke være nødvenddigt at skrive andet en upload. Evt kan man skrive ./

fso.DeleteFile (Server.Mappath("./upload/"& billednavn))
Avatar billede ferstin Nybegynder
27. december 2002 - 11:33 #13
oki... måske virker det! 2 sek... tester lige...
Avatar billede ferstin Nybegynder
27. december 2002 - 11:40 #14
hmm... æv, nu får jeg denne fejl på samtlige af mine sider:

Provider error '80004005'
Unspecified error
/upload_skabelon/db.asp, line 5

- det er sket efter jeg har været inde i min database og slette nogle records manuelt, for at teste det...
Avatar billede eagleeye Praktikant
27. december 2002 - 11:42 #15
Ha du lukket access helt og ikke bare de tabel du arbejder med?
Avatar billede ferstin Nybegynder
27. december 2002 - 11:42 #16
Jeg får ingen fejlmeldinger mere - heller ikke på slet-siden, men til gengæld bliver billedet ikke slettet...
Avatar billede ferstin Nybegynder
27. december 2002 - 11:43 #17
Jeg har lagt en connection.Close ind, så nu fungerer det fint. I slet scriptet har jeg:

Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.DeleteFile (Server.Mappath("./upload/"& billednavn))

men det bliver stadig ikke slettet...
Avatar billede eagleeye Praktikant
27. december 2002 - 11:45 #18
Prøv at lave response.write og ikke fso.delete...

Response.write (Server.Mappath("./upload/"& billednavn))
Response.End

for at se om den skriver det rigtige fil navn+folder
Avatar billede ferstin Nybegynder
27. december 2002 - 11:46 #19
jo for søren... nu virker det pludselig, - tilsyneladende...
Avatar billede ferstin Nybegynder
27. december 2002 - 11:53 #20
Ja, dette virker:

Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.DeleteFile (Server.Mappath("./upload/"& billednavn))

men er det også muligt at knytte en form for betingelse på, så kun den nyeste fil slettes?
Avatar billede eagleeye Praktikant
27. december 2002 - 11:56 #21
Ikke forstået ?? hvad mener du men den nyeste fil... Du angiver jo hvilket filnanv du vil slette...

Man kan tjekke på om en fil findes før man forsøger at slette den

if fso.FolderExists(Server.Mappath("./upload/"& billednavn)) then
  'Slet filen

end if
Avatar billede ferstin Nybegynder
27. december 2002 - 11:59 #22
nå, okay. Tak for hjælpen :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester