Nello script #191 abbiamo analizzato un semplice script Classic ASP in grado di rendere sicuro il download di files, molto utile ad esempio nel caso di aree protette.
Cerchiamo di applicare la stessa cosa ad un'applicazione ASP.NET.
In questo caso la prima cosa di cui abbiamo bisogno è un sistema per recuperare il contenuto del file: per fortuna l'oggetto HttpResponse ha un metodo WriteFile che fa al caso nostro e che legge (e scrive) anche in binario.
Ci basta dunque assemblare il codice ed ecco il risultato:
<%@Import Namespace="System.IO"%>
<script language="vb" runat="server">
Sub Page_Load()
Response.Expires = -1
' scarico un file di nome file.zip
Dim strPath as String = Server.MapPath("file.zip")
Dim file as FileInfo = New FileInfo(strPath)
' verifica esistenza
If file.Exists Then
' imposta le headers
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" & file.Name)
Response.AddHeader("Content-Length", file.Length.ToString())
Response.ContentType = "application/octet-stream"
' leggo dal file e scrivo nello stream di risposta
Response.WriteFile(strPath)
Response.End()
Else
Response.write("Impossibile scaricare il file.")
End If
End Sub
</script>Per approfondimenti si veda:
#191 - Rendere sicuro il download di file
http://www.aspitalia.com/liste/usag/script.aspx?ID=191
#366 - Leggere un file ed inserirne il contenuto sulla pagina corrente con ASP.NET
http://www.aspitalia.com/liste/usag/script.aspx?ID=366
- #946 - Attributi per il supprto a design time di custom control con ASP.NET
- #904 - L'uso dell'attributo TemplateInstance con ITemplate nei custom control
- #901 - Impostare PrincipalPermission da un file XML
- StringValidatorAttribute ConfigurationProperty e DefaultValue
- #13 - Invocare il PostBack di un controllo ASP.NET da Silverlight
- #913 - Includere in un file di risorse ed utilizzare Javascript in un custom control per ASP.NET 2.0
- #934 - Accedere ai dati usando LinqDataSource
- MailWebEventProvider perche sei public e abstract
- WPF: dal DataBinding ai Template - Seconda parte
- Il DataSet nel web è il male
- #907 - Utilizzo di XmlSerializer con custom collection
- Articolo su ASP.NET e gli standard web su MSDN
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Non riesco a fare il download di un file di 12.000 kb. Il browser dice che non viene trovata la pagina ricercata. Esiste un settaggio nel web.config? ...
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.








Stampa
Snippet
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!
Mi è stato utile questo esempio, io però ho un problema più ampio, ovvero devo scaricare più di un file con un'unica richiesta, come posso fare???...
Continua »»» | Rispondi »»»