20. februar 2006 - 18:06
Der er
9 kommentarer og 1 løsning
Hent en fil fra server udenfor wwwroot
hej! Via et upload script gemmer jeg filer som er udenfor wwwroot den ligger i : C:\W3Sites\quitzauconstruction\intrafiles\ Root ligger i: C:\W3Sites\quitzauconstruction\www\ Jeg skal med et ASP script så kunne give en bruger mulighed for at downloade en fil derfra, jeg har forsøgt med dette, men får denne fejl: Server.MapPath() error 'ASP 0172 : 80004005' Invalid Path /intra/getfile.asp, line 25 The Path parameter for the MapPath method must be a virtual path. A physical path was used. Nogen som kan hjælpe?? ------------ min kode ------------ <!--#include file="head.asp" --> <% strFil = "select * from fil where id = " & ID & "" Set RSFil= conn.Execute(strFil) %> <% strMappe = "select * from filmappe where id = " & rsfil("ID") & "" Set RSMappe= conn.Execute(strMappe) if not instr(session("id"),rsMappe("brugerid")) <> 0 then response.write "NOPE" else Dim filename Dim shortfn Dim mappe 'mappe = shortfn = rsfil("filsti") filename = server.mappath("C:\W3Sites\quitzauconstruction\intrafiles\" & shortfn) Set objStream = Server.CreateObject("ADODB.Stream") objStream.Open Const adTypeBinary = 1 objStream.Type = adTypeBinary objStream.LoadFromFile Replace(filename,"/","\") Response.AddHeader "Content-Disposition", "attachment;filename=" & shortfn Select Case right(filename,3) Case "asf" ContentType = "video/x-ms-asf" Case "avi" ContentType = "video/avi" Case "doc" ContentType = "application/msword" Case "zip" ContentType = "application/zip" Case "xls" ContentType = "application/vnd.ms-excel" Case "gif" ContentType = "image/gif" Case "jpg", "jpeg" ContentType = "image/jpeg" Case "wav" ContentType = "audio/wav" Case "mp3" ContentType = "audio/mpeg3" Case "mpg", "mpeg" ContentType = "video/mpeg" Case "rtf" ContentType = "application/rtf" Case "htm", "html" ContentType = "text/html" Case "asp" ContentType = "text/asp" Case Else 'Handle All Other Files ContentType = "application/octet-stream" End Select Response.ContentType = ContentType Response.BinaryWrite objStream.Read end if %>
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
20. februar 2006 - 18:11
#1
Hvorfor ikke bare: filename = "C:\W3Sites\quitzauconstruction\intrafiles\" & shortfn
20. februar 2006 - 18:18
#2
Gør ikke en forskel, stadig fejl..
20. februar 2006 - 18:21
#3
I hvert fald ikke den samme fejl. Hvilken?
20. februar 2006 - 18:25
#4
ADODB.Stream error '800a0bba' File could not be opened. /intra/getfile.asp, line 32 Linie 32 er: objStream.LoadFromFile Replace(filename,"/","\")
20. februar 2006 - 18:39
#5
1) Er du helt sikker på at der faktisk ligger en fil som har stien: "C:\W3Sites\quitzauconstruction\intrafiles\" & shortfn 2) Hvis der gør, ved du som om dit ASP.NET program har privilegier til at læse den? Fejlbeskeden 800a0bba betyder nemlig at programmet ikke kunne åbne filen.
20. februar 2006 - 18:46
#6
Og ellers nogen som har et andet script hvor jeg kan få det til at lykkedes?
20. februar 2006 - 18:48
#7
Nu har jeg skrevet en direkte sti til en bestemt fil, for at være sikker på at jeg har fat i en fil der eksiterer. filename = "C:\W3Sites\quitzauconstruction\intrafiles\home-icon.gif" Her får jeg denne fejl: Response object error 'ASP 0156 : 80004005' Header Error /intra/getfile.asp, line 34 The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content. Linie 34 er: Response.AddHeader "Content-Disposition", "attachment;filename=" & shortfn
20. februar 2006 - 18:56
#8
Det lyder jo som om at filen: "C:\W3Sites\quitzauconstruction\intrafiles\" & shortfn - slet ikke eksistere. Så det forklare 800a0bba fejlen. :^) Mht. den nye fejl (80004005), så skyldes den at du må have skrevet et eller andet ud til skærmen før din linje 34. Når du udkriver en header, må der ikke have været skrevet noget som helt ud andet end andre headere.
21. februar 2006 - 09:55
#9
Det kører nu. Tak for hjælpen.
21. februar 2006 - 16:21
#10
My pleasure :^)
Kurser inden for grundlæggende programmering