Avatar billede w13 Novice
11. oktober 2006 - 15:49 Der er 4 kommentarer og
1 løsning

Altid blive spurgt, om man vil gemme fil på computer

Hej Eksperter.

Jeg er i gang med at programmere en side, som gør det muligt at uploade filer til serveren og derefter få vist de uploade filer som i en mappe. (Det vil sige; i stedet for bare at udskrive links til filerne har jeg bare opstillet det som i en windowsmappe med ikoner, filoplysninger, o.lign.)

Jeg har dog det problem, at jeg ønsker, at brugeren _altid_ skal blive spurgt, om han ønsker at gemme en fil på computeren, når han klikker på den. Som det er nu, bliver visse filtyper (.doc, billedfiler, .txt, .xls, .pps, osv.) bare vist i browseren, mens det fungerer med blandt andet .mdb. Er det på nogen måde muligt at ændre dette og derved opnå, at alle filer udløser en "Vil du gemme på computer"-prompt?

Håber I kan hjælpe mig.
Tobias
Avatar billede fennec Nybegynder
11. oktober 2006 - 16:04 #1
Der findes et IE only script, ellers skal du over i ASP/PHP, hvor det er muligt at gøre det.

IE script: http://www.eksperten.dk/spm/513349
Avatar billede w13 Novice
11. oktober 2006 - 20:59 #2
Har du evt. et link til ASP-koden? =S

Har prøvet at søge lidt på google og her på eksperten, men aner simpelthen ikke, hvad jeg skal søge efter. Får ikke de rigtige resultater i hvert fald.
Avatar billede w13 Novice
11. oktober 2006 - 21:40 #3
Nå, jeg har løst det nu med noget "hvis ikke internet explorer 4.0 eller over, så åbn fil normalt". Hvis du lige opretter svar.. =)
Avatar billede fennec Nybegynder
12. oktober 2006 - 09:19 #4
ASP koden til en download.asp fil er:
<%
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
%>

du kalder så et link sådan:
<a href="download.asp?filnavn=minFil.pdf">Hent fil</a>

og du skal have rettet:
filename = server.mappath("/filer/" & shortfn)

til at pege på dit fil bibliotek.
Avatar billede w13 Novice
12. oktober 2006 - 15:21 #5
Mange 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
Vi tilbyder markedets bedste kurser inden for webudvikling

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