Avatar billede mimi Nybegynder
08. juni 2002 - 00:12 Der er 13 kommentarer og
2 løsninger

Upload af billeder

Jeg har hentet et upload-script, der sådan set virker fint nok. Billederne bliver gemt i root. Jeg vil gerne have billederne gemt i en undermappe, f.eks. billeder/

Den fil, der skal rettes i, ser sådan ud:

<%
Response.Expires=0
Response.Buffer = TRUE
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest(RequestBin)
contentType = UploadRequest.Item("blob").Item("ContentType")
filepathname = UploadRequest.Item("blob").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value = UploadRequest.Item("blob").Item("Value")
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
'pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
'Response.Write (Request.ServerVariables("PATH_INFO"))
Set MyFile = ScriptObject.CreateTextFile(Server.mappath(""&filename))
For i = 1 to LenB(value)
    MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close    %>

<!--#include file="upload.asp"-->

Og forfatteren af scriptet skriver, at skal man have gemt billederne i en mappe, så skal man ændre linjen
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
til
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\sti\"))

Skal jeg så ikke ændre det til
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\billeder/\"))???

Problemet er bare, at det ikke virker... Jeg får følgende fejlbesked returneret:
Server.MapPath() error 'ASP 0172 : 80004005'

Invalid Path

/upload/outputfile.asp, line 17

The Path parameter for the MapPath method must be a virtual path. A physical path was used.

Linje 17 er:
Set MyFile = ScriptObject.CreateTextFile(Server.mappath(""&filename))

Hvad gør jeg galt....? Er det stien, der er forkert? Jeg synes ellers, jeg har prøvet alt... Og ja - jeg har også husket at oprette mappen "billeder"....

Suk.. plese help. Projektet skal afleveres om knap 60 timer. ;o)
Avatar billede medions Nybegynder
08. juni 2002 - 00:16 #1
Set MyFile = ScriptObject.CreateTextFile(Server.mappath("\mappe\"&filename))

//>Rune
Avatar billede mimi Nybegynder
08. juni 2002 - 00:20 #2
Hmm... virker stadig ikke. Får den samme fejlmeddelelse.
Avatar billede medions Nybegynder
08. juni 2002 - 00:21 #3
Set MyFile = ScriptObject.CreateTextFile(Server.mappath(filename))

Virker dette?
//>Rune
Avatar billede mimi Nybegynder
08. juni 2002 - 00:23 #4
Nope.
Avatar billede medions Nybegynder
08. juni 2002 - 00:25 #5
Samme fejl?

Jeg tror ikke du har skriverettigheder på den mappe du prøver at oprette billeder i!

//>Rune
Avatar billede mimi Nybegynder
08. juni 2002 - 00:25 #6
Hov, fejlmeddelelsen ved dit første forslag er ikke den samme, men:

Server.MapPath(), ASP 0173 (0x80004005)
An invalid character was specified in the Path parameter for the MapPath method.
/Skægagamer/Skaegagamer_NY/website/test/outputfile.asp, line 17

Der må være noget med de slahes/backslashes?
Avatar billede mimi Nybegynder
08. juni 2002 - 00:30 #7
Ej for pokker da.. Jeg nosser totalt i det. Det er ved at være lidt sent... :o)

Forfatteren skriver, at man skal ændre denne linje
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,""))

til:
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\sti\"))
(havde glemt de skrå streger, sorry...)

Kan det have noget med det at gøre, at jeg får fejl et par linjer længere nede? Så skal min linje måske ikke hedde
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"billeder/"))
alligevel? Men:
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\billeder/\"))???

Synes bare, jeg har prøvet...
Avatar billede medions Nybegynder
08. juni 2002 - 00:31 #8
Så prøv lige med denne!
Set MyFile = ScriptObject.CreateTextFile(Server.mappath("mappe\"&filename))

men prøv oxo lige at opret et nyt dokument og læg det i samme mappe som scriptet du kører og skriv:
Response.Write(Server.MapPath("fil.asp"))

og skriv lgie her på eksperten hvad du har fået som resultat!
//>Rune
Avatar billede medions Nybegynder
08. juni 2002 - 00:31 #9
*G*
//>Rune
Avatar billede mimi Nybegynder
08. juni 2002 - 00:37 #10
Hm, hvis jeg retter Set MyFile-linjen igen, er resultatet:
Server.MapPath(), ASP 0173 (0x80004005)
An invalid character was specified in the Path parameter for the MapPath method.
/Skægagamer/Skaegagamer_NY/website/test/outputfile.asp, line 17

Og mht. til at oprette et nyt dokument, så er jeg lidt ristet og fatter ikke, hvad du mener? Altså hvad skal det nye dokument hedde? Og hvad skal jeg skrive i stedet for "fil.asp"?

Argh, takker for din tålmodighed med sådan en tumpe som mig! ;o)
Avatar billede medions Nybegynder
08. juni 2002 - 00:41 #11
:-) Okay..

Well, har du ik' ICQ eller Messenger? -Det er lidt nemmere at forklare over der!
//>Rune
Avatar billede mimi Nybegynder
08. juni 2002 - 00:42 #12
MSN: vuliver@hotmail.com
Avatar billede mimi Nybegynder
08. juni 2002 - 00:57 #13
Hm, ser ud til, du ikke kan se, hvad jeg skriver på MSN. Fang mig på ICQ: 78104448
Avatar billede jens_k Nybegynder
08. juni 2002 - 06:04 #14
Det er den linie som hedder MyFile du skal rette i..

Den kan f.eks se således ud..

Set MyFile = ScriptObject.CreateTextFile(Server.mappath("billeder/"&filename))


Bruger selv det script.. Det virker fint hos mig..

Jens K
Avatar billede mimi Nybegynder
08. juni 2002 - 10:02 #15
Mange tusind tak, Jens K. Nu virker det. :o)

I får alligevel pointene begge to, Jens K fordi hans svar fik det vil at virke, og Rune fordi han prøvede så hårdt.
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