31 messaggi dal 23 giugno 2003
Salve a tutti, su un sito devo dare la possibilità all'utente di aprire nel browser o scaricare il documento preescelto.
Come faccio a forzare il download del file (facendo apparire la maschera "salva con nome") e fare in modo che il file non si apra nel browser?
Ho provato un javascript, che mi sembra la tecnica miogliore, ma non mi riesce.
Grazie
18 messaggi dal 14 ottobre 2002
Prova con questo script:

<%@LANGUAGE="VBSCRIPT"%>
<%
Session.Timeout=30
Response.Expires=0
Response.ExpiresAbsolute=now()- 1000
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl="no-cache"

function getBinaryFile(fileSpec)
Dim adTypeBinary
adTypeBinary = 1
Dim oStream
set oStream = server.createobject("ADODB.Stream")
oStream.Open
oStream.Type = adTypeBinary
oStream.LoadFromFile fileSpec
getBinaryFile= oStream.read
set oStream=nothing
end function

response.contenttype="application/x-unknown"
response.addheader "Content-Disposition","attachment; filename=" & chr(34) & Request.Querystring("file") & chr(34)

response.binarywrite getBinaryFile(server.mappath("./" & Request.Querystring("file")))

%>
11.886 messaggi dal 09 febbraio 2002
Contributi
clicca questo link:
forzare il download

Enjoy learning and just keep making
31 messaggi dal 23 giugno 2003
Grazie gamma funziona, ma mi chiede di fare il download del file download.asp (che richiamo dal menu) e non dei file in esso contenuti che dovrebbero essere quelli da scaricare.
Questo script deve essere inglobato nel file che voglio debba essere scaricato?
se si non va bene perchè i miei sono file pdf o xls che mi vengono aperti nel browser.
Grazie

Modificato da Sonyy il 27 ottobre 2003 16.02 -
11.886 messaggi dal 09 febbraio 2002
Contributi
questo problema ricorre spesso...
il file che stai per scaricare si chiama download.asp ma il contenuto è in realtà quello dell'altro file.
Quando ti chiede di salvarlo, ridagli il nome originale e dopo che è terminato il download aprilo: vedrai che sarà il file corretto.

Lato server devi dare una direttiva particolare che indichi il nome del file da scaricare, altrimenti prende quello della pagina asp.
Guarda quest'altro che funziona meglio, c'è anche un esempio che lo dimostra:

http://www.roksteady.net/code/download.asp

ricordati di indicare il giusto content-type per ogni tipo di file (immagini, pdf, doc, ecc).
La stringa "octet/application" è semplicemente troppo generica.
Qui trovi la lista dei mimetypes per i file più comuni:
http://www.hostutopia.com/support/s058.html
Modificato da BrightSoul il 27 ottobre 2003 16.23 -

Enjoy learning and just keep making
31 messaggi dal 23 giugno 2003
ok, fatto.
grazie a tutti

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.