Avatar billede ellebaek Nybegynder
17. juli 2003 - 21:29 Der er 26 kommentarer og
1 løsning

Automatisk download virker ikke?

Jeg har følgende script:

<%@ Language=VBScript LCID=1030 EnableSessionState=False %>
<% 'download.asp
Option Explicit
Dim strFileSpec, objStream

strFileSpec = request.querystring("file")

Set objStream = Server.CreateObject("ADODB.Stream")

objStream.Type = 1
objStream.Open
objStream.LoadFromFile (strFileSpec)
Response.ContentType = "image/jpg"
Response.BinaryWrite (objStream.Read)

objStream.Close
Set objStream = Nothing
%>

Dette skal bruges til at downloade filer med...
Jeg kan sagtens få dialogboksen frem med muligheden for at downloade, men filen jeg har muligheden for at downloade er download.asp der er den fil jeg kalder med...

Jeg ønsker at få siden til at downloade forskellige filer også af forskellige typer. Siden skal bruges i forbindelse med et uploadsystem som jeg allerede har lavet. Det uploader følgende filtyper: (.jpg, .bmp, .gif, .doc. .txt)

Jeg har tidligere haft dette spg. oppe, men der kom ikke noget svar på mit problem.
Men tidligere spg: http://www.eksperten.dk/spm/372765
Avatar billede cwboy Nybegynder
18. juli 2003 - 10:18 #1
Nu ved jeg ikke lige om jeg har forstået det rigtigt, men prøv under linjen
Response.ContentType = "image/jpg" (mener iøvrigt det hedder image/jpeg ??)
at tilføje denne linje:
Response.AddHeader "content-disposition", "attachment;filename=" & strFileSpec
Avatar billede cwboy Nybegynder
21. juli 2003 - 19:34 #2
Må man tillade sig at spørge, om det kunne bruges til noget? :)
Avatar billede ellebaek Nybegynder
22. juli 2003 - 03:25 #3
sorry har ikke været ved computeren.
Jeg tester det i morgen!
Avatar billede ellebaek Nybegynder
22. juli 2003 - 15:07 #4
den fil der skal downloades bliver stadig filer.asp som jeg sender fra. hvis jeg vælger åben fra nuværende placering så kommer billedet bare frem i IE, i stedet for man kan downloade det...
Avatar billede cwboy Nybegynder
22. juli 2003 - 18:45 #5
Prøv at ændre contenttype til "application/octet-stream"...
Avatar billede ellebaek Nybegynder
22. juli 2003 - 19:36 #6
stadig samme problem.

Men jeg fandt dette i et andet spg.
<%
filename = server.mappath("filer/" & request.querystring("filenavn"))
Set objStream = Server.CreateObject("ADODB.Stream")
  objStream.Open
  Const adTypeBinary = 1
  objStream.Type = adTypeBinary
  objStream.LoadFromFile Replace(filename,"/","\") 
  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.AddHeader "content-disposition", "attachment;filename=" & filename
 
  Response.BinaryWrite objStream.Read
  %>

Her får jeg igen kun muligheden for at downloade filer.asp, og kan så downloade den som en html fil. Denne bliver dog downloadet som den skal...

Det er meget mystisk!
Avatar billede cwboy Nybegynder
22. juli 2003 - 19:42 #7
hmm... prøv at få udskrevet filename før linjen med addheader - eller prøv evt at erstatte den med en fast værdi fx "test.fil" for at tjekke om det er der, den er gal. Det kan være, at filename ikke må have sti til filen med...
Avatar billede ellebaek Nybegynder
22. juli 2003 - 19:53 #8
Stadig det samme problem, også selvom jeg skriver en fil der ikke findes på serveren...
Avatar billede cwboy Nybegynder
22. juli 2003 - 21:46 #9
så har jeg fået testet noget på min egen maskine:

<%
Response.Expires = -1

Dim filename
Dim shortfn

shortfn = request.querystring("filnavn")
filename = server.mappath("filer/" & 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
%>
Avatar billede ellebaek Nybegynder
22. juli 2003 - 21:56 #10
prøv lige denne side:
http://ellebaek.dyndns.dk/exp/upload/filer.asp

så prøv når du trykker på filen for at downloade den, at se hvilken fil du kan downloade...

Så prøv at trykke åben fra nuværende placering, så kommer den rigtige fil frem...

Jeg forstår det ikke. Det er med den kode du skrev.
Avatar billede cwboy Nybegynder
22. juli 2003 - 22:03 #11
har du bemærket ændringen med "shortfn" efter Response.AddHeader "Content-Disposition"....
Hvis jeg kigger på, hvad der står i http-headeren siger den nemlig
Content-Disposition: attachment;filename=C:\WINDOWS\Skrivebord\hjemmesider\exp\upload\filer\asp.jpg

hvilket kunne tyde på at det er hele den mappede path til "asp.jpg" den får...
Avatar billede ellebaek Nybegynder
22. juli 2003 - 22:05 #12
prøv nu....

Nu har jeg rettet det tilbage...!
Avatar billede cwboy Nybegynder
22. juli 2003 - 22:10 #13
nu skriver den "/filer/asp.jpg" i headeren...

Prøv at kontrollere disse linjer:
---
Dim filename
Dim shortfn

shortfn = request.querystring("filnavn")
filename = server.mappath("filer/" & shortfn)

--- samt denne ---
Response.AddHeader "Content-Disposition", "attachment;filename=" & shortfn
---

Det lader til, det er vigtigt, at det kun er selve filnavnen, der er i variablen "shortfn" og ikke nogen sti på...
Avatar billede ellebaek Nybegynder
22. juli 2003 - 22:13 #14
nu skulle den være der...!
Avatar billede cwboy Nybegynder
22. juli 2003 - 22:19 #15
jeps, den kører også herfra :)
Avatar billede ellebaek Nybegynder
22. juli 2003 - 22:19 #16
virker det som det skal...?
Avatar billede cwboy Nybegynder
22. juli 2003 - 22:21 #17
jeps, jeg får lov til at gemme hhv. "bootlog.txt", "netvaerk.txt" og "asp.jpg"
Avatar billede ellebaek Nybegynder
22. juli 2003 - 22:22 #18
hmm....


Jeg får kun lov til at gemme filer.asp.

Hvilken IE benytter du..?
Avatar billede cwboy Nybegynder
22. juli 2003 - 22:29 #19
6.0.2800 - prøv at åbne et nyt browservindue - eller først helt lukke IE og så åbne en ny...
Avatar billede ellebaek Nybegynder
22. juli 2003 - 22:33 #20
jeg har kun ie5.5 kan måske have noget med det at gøre.

Jeg skal desværre på ferie i morgen, men vender tilbage så snart jeg kommer hjem, så henter jeg den nyeste version og ser om det virker...

Er det i orden?
Avatar billede cwboy Nybegynder
22. juli 2003 - 22:35 #21
yep... det kan muligvis også være et spørgsmål om din cache... har en løsning et sted, kan prøve at se om jeg kan finde den frem i mellemtiden
Avatar billede ellebaek Nybegynder
22. juli 2003 - 22:45 #22
det ville være lækkert..!
Avatar billede cwboy Nybegynder
22. juli 2003 - 22:51 #23
er ude for idag, men drop en kommentar, når du er tilbage :)
Avatar billede ellebaek Nybegynder
22. juli 2003 - 23:01 #24
Det gør jeg. Men der går nok en 10 dages tid inden jeg kommer hjem...
Avatar billede cwboy Nybegynder
03. august 2003 - 10:13 #25
som lovet ville jeg prøve at finde noget til at hjælpe mod cachen...
Det er fundet på ActiveDeveloper: http://activedeveloper.dk/julekalender/julegaver/nocache.asp.

Koden som skal sættes ind forrest i dokumentet (og slet linjen med Response.Expires = -1) er:

Response.Expires = 0
Response.Expiresabsolute = DateAdd("d", -2, Now())
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "private"

Ellers gå ind i dine internetindstillinger og fjern alle "midlertidige internet filer" :)
Avatar billede ellebaek Nybegynder
07. august 2003 - 21:16 #26
nu har jeg prøvet mig frem med en IE der var nyere end den jeg ellers har benyttet, og der virker det som det skal...

Så derfor siger jeg mange tak for hjælpen...
Og undskyld den lange svartid fra min side...

Mvh. Jens!
Avatar billede cwboy Nybegynder
07. august 2003 - 21:22 #27
Takker for point :) - og det var så lidt, er glad for det kom til at virke :)
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