Ho usato questo metodo per forzare il download di files. Con IE e Opera funziona:
codice:
<%
Response.Buffer = True
Dim objXMLHTTP, StrURL, StrNome
StrURL = request.querystring("file")
splitto = split(StrURL, "/")
StrNome = splitto(Ubound(splitto))
Set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
'Utilizziamo la versione 3 che non ha problemi di performance
'per la 2 usare Microsoft.XMLHTTP
objXMLHTTP.Open "GET", StrURL, False
' Richiama il file
objXMLHTTP.Send
' Aggiunge un header per far scaricare il file
Response.AddHeader "Content-Disposition", "attachment;filename=" & StrNome
' Imposta il content su octet-stream, forzando l'apertura fuori dal browser
Response.ContentType = application/octet-stream
' Manda il contenuto con BinaryWrite
Response.BinaryWrite objXMLHTTP.responseBody
Set xml = Nothing
%>
Però con Firefox, Netscape e Mozilla succede che il nome del file salavato viene troncato alla prima parola e, cosa ancor più grave, perde l'estensione: per aprirlo Win chiede il programma da utilizzare... Se lo scelgo, il file si apre correttamente, ma un utente poco esperto potrebbe ignorare la cosa e perdersi...
Ho provato anche a mettere al posto di application/octet-stream il mime type che si presenta di volta in volta. Sembra migliorare perchè nella finestra di download Firefox riconosce che è un file pdf, ma lo salva esattamente come prima...
Non avete una soluzione crossbrowser?