Avatar billede ferstin Nybegynder
03. januar 2003 - 08:50 Der er 6 kommentarer og
2 løsninger

Sletning af fil

Her er den del af mit script, som sletter min post i databasen, men jeg vil også gerne have det til at slette filen på serveren.

Filen skal kun slettes, hvis den findes - altså hvis der ligger data i strengen der bliver sendt der hedder "navn". Men den ignorerer tilsyneladende den betingelse jeg har sat op, for jeg får fejlbeskeden: "file not found".

Hvad går der galt her?

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

Dim billednavn
billednavn = Request.QueryString("navn")

Dim fso
If not isnull(billednavn) OR billednavn<>"" Then
Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.DeleteFile (Server.Mappath("./upload/"& billednavn))
End If

rs.Delete
Avatar billede Spotgun Seniormester
03. januar 2003 - 09:08 #1
Kan du ikke bare bruge:
If fso.FileExists(Server.Mappath("./upload/"& billednavn")) Then
  fso.DeleteFile(Server.Mappath("./upload/"& billednavn"))
End If

?
Avatar billede ferstin Nybegynder
03. januar 2003 - 09:30 #2
hmm... tester lige :-)
Avatar billede _darkstar_ Nybegynder
03. januar 2003 - 09:39 #3
Hvad sker der hvis man udfører sammenligningen billednavn <> "" når billednavn er null?
Avatar billede ferstin Nybegynder
03. januar 2003 - 10:02 #4
spotgun >

If fso.FileExists(Server.Mappath("./upload/"& billednavn")) Then fso.DeleteFile(Server.Mappath("./upload/"& billednavn"))

giver denne fejlmeddelelse:

If fso.FileExists(Server.Mappath("./upload/"& billednavn")) Then fso.DeleteFile(Server.Mappath("./upload/"& billednavn"))
--------------------------------------------------------^

Jeg har prøvet at fjerne " efter billednavn, men så kommer der en anden meddelelse:

Object required: ''
Avatar billede ferstin Nybegynder
03. januar 2003 - 10:04 #5
darkstar > så laver den vrøvl med nogle EOF komplikationer, - har testet det tidligere...
Avatar billede ferstin Nybegynder
03. januar 2003 - 10:17 #6
Skriver jeg dette:

Dim fso
If fso.FileExists(Server.Mappath("./upload/"& billednavn & ")) Then
fso.DeleteFile(Server.Mappath("./upload/"& billednavn & "))
End If

Får jeg denne fejl:

Microsoft VBScript compilation error '800a0409'
Unterminated string constant
/upload_skabelon/produkter/slet.asp, line 52
If fso.FileExists(Server.Mappath("./upload/"& billednavn & ")) Then
-------------------------------------------------------------------^
Avatar billede ferstin Nybegynder
03. januar 2003 - 10:39 #7
Jeg har nu rettet scriptet til dette:

Dim fso
Set fso = Server.CreateObject("Scripting.FileSystemObject")
If fso.FileExists(Server.Mappath("./upload/"& billednavn)) Then
fso.DeleteFile (Server.Mappath("./upload/"& billednavn))
End If

Den kører igennem uden at give noget fejlmedd. men filen bliver ikke slettet.
Avatar billede ferstin Nybegynder
03. januar 2003 - 11:03 #8
Jeg fant selv fejlen, - sorry, det var en forkert referance til strengen. Men I kan da få lidt for hjælpen alligevel :-)
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