Avatar billede hehlers Nybegynder
20. april 2006 - 13:18 Der er 36 kommentarer

type mismatch når jeg vil slette en fil

Hejsa

Jeg har et billedmodul hvor man kan uploade billeder og i et admin-system skal der så være mulighed for at slette dem.

Jeg får dog fejl i dette her:

mappe = Request.querystring("mappe")
path ("/image/upload/" & mappe & "/")

Jeg synes ikke jeg kan se noget galt...
Avatar billede michael_stim Ekspert
20. april 2006 - 13:21 #1
Er du sikker på det ikke er i databasen.
Avatar billede thesurfer Nybegynder
20. april 2006 - 13:23 #2
Mon ikke at du mangler et "=" efter "path"..?:

path = ("/image/upload/" & mappe & "/")

/theSurfer
Avatar billede hehlers Nybegynder
20. april 2006 - 13:33 #3
Jeg sletter direkte fra meppen, - derfor ikke noget med databaser :)

Jeg har prøvet at sætte "=" foran, så får jeg fejlen

"File not found"

/image/upload/galleri/tired_thomsen_margaux.jpg

På trods af at stien her ser rigtig nok ud... :(
Avatar billede thesurfer Nybegynder
20. april 2006 - 13:37 #4
Er du sikker på, at værdien "/image/upload/" er korrekt?
Det kunne være, at mappen hedder "images" (med "s")..

/theSurfer
Avatar billede michael_stim Ekspert
20. april 2006 - 13:37 #5
Prøv at fjerne den første / i stien.

image/upload/galleri/tired_thomsen_margaux.jpg
Avatar billede hehlers Nybegynder
20. april 2006 - 13:38 #6
hehe synes næsten jeg har tjekket alt. - Desværre også det du skriver. :)

Det virker mystisk... Jeg må kigge videre. ;)
Avatar billede thesurfer Nybegynder
20. april 2006 - 13:38 #7
Hvor ligger mappen "image" i forhold til din ASP fil?

/theSurfer
Avatar billede hehlers Nybegynder
20. april 2006 - 13:43 #8
den ligger ../image
Avatar billede thesurfer Nybegynder
20. april 2006 - 13:43 #9
Så skal du bruge "../image"..
Du kan kun bruge "/image", hvis "image" ligger i roden af sitet.. f.eks: http://www.server.dk/image/...

/theSurfer
Avatar billede hehlers Nybegynder
20. april 2006 - 13:49 #10
har jeg desværre også prøvet. Resultatet er det samme.
Avatar billede michael_stim Ekspert
20. april 2006 - 13:52 #11
Og du har sat rettigheder på mappen?
Avatar billede hehlers Nybegynder
20. april 2006 - 13:58 #12
Det skal jeg vel have min webhotels udbyder til ikke?. - Det kunne godt tænkes at have noget med det at gøre.
Avatar billede michael_stim Ekspert
20. april 2006 - 14:02 #13
Nej det kan du selv gøre. Evt i egenskaber for mappen (med dit ftp-program)
Avatar billede thesurfer Nybegynder
20. april 2006 - 14:03 #14
Det kan være, at der er forskel på STORE og små bogstaver.
Især hvis det er Sun ONE ASP, der kører på en Linux server.

Åben billedet direkte i browseren fra serveren.. ret navnet (STORE/små bogstaver)..

/theSurfer
Avatar billede thesurfer Nybegynder
20. april 2006 - 14:06 #15
Hvis det er hos b-one.dk, bruger de ChiliASP (Sun): http://www.chilisoft.com/chiliasp/

Hvilken webhotel bruger du?

/theSurfer
Avatar billede hehlers Nybegynder
20. april 2006 - 14:11 #16
Jeg kører med et Business Webhotel fra Wannafind
Avatar billede thesurfer Nybegynder
20. april 2006 - 14:17 #17
Jeg kan ikke se se "Business" på http://www.wannafind.dk/server.asp

1) Ved du om du har bestilt Windows eller Linux server?
2) Har du prøvet testen i 20/04-2006 14:03:07?
Dvs, hvis billeder er http://www.server.dk/billede.jpg prøv med http://www.server.dk/BILLEDE.jpg (har skrevet "billede" med STORE bogstaver)

/theSurfer
Avatar billede hehlers Nybegynder
20. april 2006 - 14:20 #18
Sludder, det er Wannafind windows luksus
Avatar billede thesurfer Nybegynder
20. april 2006 - 14:22 #19
Check lige mine sidste 3 indlæg..

Jeg smutter på arbejde nu.. er muligvis tilbage omkring midnat..

/theSurfer
Avatar billede madeindk Nybegynder
20. april 2006 - 21:35 #20
hehlers - prøv evt. med:

mappe = Request.querystring("mappe")
path = Server.Mappath("/image/upload/" & mappe & "/")
Avatar billede eagleeye Praktikant
20. april 2006 - 23:58 #21
Hvis variablen mappe indeholder filnavnet skal der ikke "/" til sidst: ("/image/upload/" & mappe & "/")


Men bare:  ("/image/upload/" & mappe)


Kan du evt. prøve at vise det koden som sletter filen?
Avatar billede hehlers Nybegynder
21. april 2006 - 08:35 #22
Synes jeg har prøvet dette. Variablen "mappe" indeholder ikke filnavnet.

Her er koden som sletter filen:

mappe = Request.querystring("mappe")
'response.Write(mappe)
dim action
action = request("action")
dim path
path = ("/image/upload/" & mappe & "/")

errtxt = request("errtxt")

if action ="delete" then
    deletefile = Request.querystring("deletefile")
    Response.Write( path & deletefile )
   
      Set fs = Server.CreateObject("Scripting.FileSystemObject")
      fs.DeleteFile(path & deletefile)
      response.redirect("filliste.asp?etx=Fil slettet!")

    action = ""
end if
----------------------------
Og her er er linket der skal slette:
----------------------------
sletfil.asp?mappe=galleri&action=delete&deletefile=<%=objFile.Name%>

----------------------------

Tror efterhånden jeg bliver gammel af og kigge på den kode. Jeg har vist efterhånden kigget det igennem 17893 gange, og kan stadig ikke se noget galt.. ;)
Avatar billede thesurfer Nybegynder
21. april 2006 - 08:57 #23
Prøv at erstatte linien

fs.DeleteFile(path & deletefile)

med

response.write "Skulle slette '" & path & deletefile & "'."

Så skulle den gerne skrive den interne sti.
Hvis den skriver noget med "http://..." eller andet online-sti, så skal du bruge Server.Mappath(path & deletefile)

/theSurfer
Avatar billede hehlers Nybegynder
21. april 2006 - 09:02 #24
hehe så får jeg denne linie her ud:

/image/upload/galleri/the_king.jpgSkulle slette '/image/upload/galleri/the_king.jpg'.

Den er vel god nok?
Avatar billede thesurfer Nybegynder
21. april 2006 - 09:49 #25
Hmmm.. Hvis du indsætter "/image/upload/galleri/the_king.jpg" i din url, efter server.dk osv, vises billedet så?

/theSurfer
Avatar billede thesurfer Nybegynder
21. april 2006 - 09:50 #26
Eksisterer filen overhovedet..? :-)

/theSurfer
Avatar billede thesurfer Nybegynder
21. april 2006 - 09:52 #27
Prøv det her:

If fs.FileExists(Server.Mappath(deletefile)) = true Then fs.DeleteFile(path & deletefile)

/theSurfer
Avatar billede hehlers Nybegynder
21. april 2006 - 09:52 #28
Avatar billede thesurfer Nybegynder
21. april 2006 - 09:54 #29
Jeg håber at variablen "mappe" indeholder ordet "galleri".. :-)

Test: response.write "<br>mappe er '" & mappe & "'."

/theSurfer
Avatar billede michael_stim Ekspert
21. april 2006 - 10:16 #30
Sidespring ;o)
Hvem skal drikke vinen i den hvide skål???
Avatar billede hehlers Nybegynder
21. april 2006 - 10:22 #31
Nu har jeg prøvet med det her:
-------------------------------------
if action ="delete" then
    deletefile = Request.querystring("deletefile")
    Response.Write( path & deletefile )
   
      Set fs = Server.CreateObject("Scripting.FileSystemObject")
      'fs.DeleteFile(path & deletefile)
      If fs.FileExists(Server.Mappath(deletefile)) = true Then fs.DeleteFile(path & deletefile)
      response.write ("Skulle slette '" & path & deletefile & "'.")
      'response.redirect("filliste.asp?etx=Fil slettet!")

    action = ""
end if
------------------------------

Der kommer ingen fejl nu, men filen bliver desværre heller ikke slettet. :)

Selve URL ti lsletning ser sådan her ud:
sletfil.asp?mappe=galleri&action=delete&deletefile=the_king.jpg

--------------------------------
Jeg er helt på bar bund.. :(

@ michael, den hvide skål er en blanding af de 20 bedste Medoc vine. Mærkelig, men smager nok ikke så ringe. ;))) Omend det ser uapetitligt ud :)
Avatar billede thesurfer Nybegynder
21. april 2006 - 10:31 #32
Hmm.. Kører din side på en Windows server eller en Linux server (via Sun One ASP, ChiliASP) ?

Hvis det er Linux, så er der forskel på store og små bogstaver..
Men så burde det vel også give udslag, hvis man går ind på

http://www.virring-essenbaek.dk/image/upload/galleri/THE_KING.jPg

/theSurfer
Avatar billede hehlers Nybegynder
21. april 2006 - 10:34 #33
ja, det er win-server hos Wannafind. Jeg må nok hellere tage fat i Wannafind, tror du ikke?
Avatar billede thesurfer Nybegynder
21. april 2006 - 10:50 #34
Jo, det kan være en god ide, at spørge dem, om de har specielle opsætninger, bl.a. mht file-access / fil-adgang / FileSystemObject.

Indtil videre, er det nok en god ide, at gå tilbage til linien

      fs.DeleteFile(path & deletefile)

så du ved, hvordan det kommer til at virke igen (= når den ikke længere melder fejl)..

Hvis du vil undgå at hele siden stopper/crasher, gør det her:

Linie 1: <%
Linie 2: Option Explicit
Linie 3: On Error Resume Next
Linie X: dine kode-linier her

Sidst i filen:

if err.number <> 0 then
' da fejlkoden IKKE er 0 (som betyder "alt er ok"), må der være opstået en fejl:
response.write "Der opstod en fejl:<br>" & err.number & " - " & err.description
end if

Forklaringer:
Option Explicit - Dette tvinger programmøren (dig) til at definere alle dine variabeler
Dvs: dim action, deletefile, osv..
På den måde kan den fortælle dig, når du har lavet stavefejl.

On Error Resume Next - Dette fortæller fortolkeren (der afvikler ASP koden) at den skal den skal fortsætte med koden, selvom der opstår fejl.
Man fanger fejlkoden og fejlbeskrivelsen sådan:
fejlkode: err.number
fejlbeskrivelse: err.description

/theSurfer
Avatar billede thesurfer Nybegynder
21. april 2006 - 10:51 #35
Rettelse: så du ved, hvordan det kommer til at virke igen (= når den ikke længere melder fejl)..

/theSurfer
Avatar billede eagleeye Praktikant
21. april 2006 - 15:23 #36
Prøv lige at rette, jeg syntes at kunne huske at nogle FSO funktionerne kræver fysisk sti:

      fs.DeleteFile(path & deletefile)


Til:

      fs.DeleteFile(Server.Mappath(path & deletefile))
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