Avatar billede montago Praktikant
23. april 2004 - 10:04 Der er 1 kommentar og
1 løsning

tvungen download

når man fx skal lave et link til en .txt fil eller .pdf eller whatever...

hvordan tvinger jeg så server/client til at starte en hentning af filen, i stedet for en alm. åbning...

hvis jeg fx. laver et link til en txt fil plejer browseren jo bare at åbne filen som tekst... hvilket jeg ikke vil have i alle tilfælde...

samme sker for .asp filer... hvad hvis nu jeg hellere vil lade clienten downloade en .asp fil... eller .html

vi kan på www.campusnet.dtu.dk (DTU) hente alle slags filer, uden at disse bliver åbnet...

jeg vil det samme ! ;-)
Avatar billede mortency Nybegynder
23. april 2004 - 10:11 #1
link med download.asp?file=dittfilnavn

download.asp
-------------
<%
Response.Expires = -1

Dim filename
Dim shortfn

shortfn = request.querystring("file")
filename = server.mappath("downloads/" & 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 montago Praktikant
23. april 2004 - 10:24 #2
det virker tildels... det eneste man måske kan klandre scriptet for er at hvis ens fil er at af en given type, men har en anden extension... vil filnavnet man har hentet, have fået en extenstion extra...

fx.. jeg har nogle filer som hedder .lvl af typen txt... som efter en hentning hedder: filnavn.lvl.txt

hvilket er en smule trist... jeg tror dog godt jeg selv kan finde ud af at pille denne funktion ud...

men man tak !
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