Avatar billede plexx Nybegynder
10. september 2005 - 15:40 Der er 5 kommentarer og
1 løsning

Åbne fil fra DB mappe.

Hej eksperter,
Jeg har lavet et script der gemmer en .pdf og en .txt fil i en DB mappen og nu vil jeg gerne have at de besøgende på siden kan åbne disse filer, men hvordan gør jeg det?

Webhotel root:
DB - Ingen læseadgang for de besøgende
WWW - Kun læseadgang
Avatar billede busschou Praktikant
10. september 2005 - 15:49 #1
hmm det kan du jo ikke når der ikke er læse adgang ;o)
Så du bliver nød til at kopiere filen enten selv eller i et script via et fso object
Avatar billede softspot Forsker
10. september 2005 - 15:51 #2
Du er nød til at "streame" dine filer, dvs. lave en side som læser filerne ind i serverens hukommelse og sender dem til brugeren browser via Response.BinaryWrite.

Her skal du tage hensyn til encoding af data og sætte nogle headers for at det kommer til at fungere.

for pdf-filer er det (hvis der skal poppe en dialog op med open/save)
response.addheader("Content-Disposition","attachment; filename=" & filnavnet)
response.addheader("Content-Type", "application/pdf")

response.BinaryWrite fildata

Hvor fildata indeholder de data der skal sendes til klienten.

For txt-filer mener jeg det er
response.addheader("Content-Type", "text/plan")

i stedet.
Avatar billede softspot Forsker
10. september 2005 - 15:53 #3
Jeg har lige fundet et helt eksempel her som kan streame filer, det kan være det fungerer fra starten :)

<%@ language="vbscript" %>
<%
Const adTypeBinary = 1
docname = "Invitationsliste.doc" ' ELLER HVAD DEN NU HEDDER
filename = server.mappath(docname)
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile filename
arrFilename = split(filename,".")
Select Case arrFilename(ubound(arrFilename))
    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.AddHeader "Content-Type", ContentType & "; charset=windows-1252"
Response.AddHeader "content-disposition", "attachment;filename=" & docname
 
Response.BinaryWrite objStream.Read
%>
Avatar billede plexx Nybegynder
10. september 2005 - 16:04 #4
Fino det virker.
Ligger du et svar softspot?
Avatar billede softspot Forsker
10. september 2005 - 16:05 #5
Super! Du fik svaret der :)
Avatar billede softspot Forsker
10. september 2005 - 16:12 #6
Tak for point :)
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

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