Buonasera a lorsignori!
Sto usando questo codice per forzare il download di un file da pagina ASP.
Chiaramente uso application/octet-stream perchè non so in partenza il tipo di file che verrà scaricato.Codice PHP:Response.Expires=0
Response.Buffer=0
Const BLOCCO = 1024
strFilePath = Server.MapPath(percorsofile & nomefile)
Set fso = Server.CreateObject("Scripting.FileSystemObject")
set objFile = fso.GetFile(strFilePath)
Response.AddHeader "Content-Disposition", "attachment; filename=" & objFile.Name
Response.AddHeader "Content-Length", objFile.Size
Response.ContentType = "application/octet-stream"
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1 ' adTypeBinary
objStream.LoadFromFile strFilePath
lSize = objStream.Size
lBlocks = 1
For lBlocks = lBlocks To lSize \ BLOCCO
If Response.IsClientConnected = False Then Exit For
Response.BinaryWrite objStream.Read(BLOCCO)
Next
lSize = lSize Mod BLOT
If lSize > 0 And Response.IsClientConnected = True Then
Response.BinaryWrite objStream.Read(lSize)
End If
objStream.Close
Set objStream = Nothing
Con Explorer6.0 succede una cosa strana: quando eseguo lo script appare la finestra di download con i pulsanti Apri/Salva... Se clicco su Salva..., nessun problema tutto viene eseguito alla perfezione. Se invece clicco su Apri, si apre l'applicazione (es. Acrobat) ma poi ricevo l'errore "Impossibile trovare il file"; stesso comportamento anche con estensioni XLS e DOC.
Avevo trovato questa pagina
http://classicasp.aspfaq.com/general...mime-type.html
e ad un certo punto c'è scritto qualcosa che farebbe al caso mio:
Some users have found that Internet Explorer prompts users with two open/save as dialogs. This is likely because you have sent the filename in both the ContentType and the AddHeader/Content-Disposition headers. To resolve the issue, use only the AddHeader variant.
Tuttavia con use only the AddHeader variant mica ho capito cosa intende!!!! Ho provato ad eliminare la riga Response.ContentType = "application/octet-stream" ma il comportamento non è cambiato di un millimetro!
Fatemi capire, è un baco di IE6 (ho testato su FF e IE7 e aprono correttamente il file) o si può cambiare qualcosa nel codice ASP per risolvere il problema??
:master:
NB: L'utente che clicca su "scarica il file" non dovrebbe poi cliccare su Apri, sono d'accordo con voi. Ma purtroppo conoscete i navigatori, non abbiamo ancora un linguaggio che regoli i loro comportamenti. Io inizierei a svilupparlo: DummyUser1.0....

Rispondi quotando
