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>
Approfondimenti
#191 - Rendere sicuro il download di file
https://www.aspitalia.com/liste/usag/script.aspx?ID=191
#366 - Leggere un file ed inserirne il contenuto sulla pagina corrente con ASP.NET
https://www.aspitalia.com/liste/usag/script.aspx?ID=366
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Utilizzare Docker Compose con Azure App Service
- Utilizzare QuickGrid di Blazor con Entity Framework
- Modernizzare le applicazioni WPF e Windows Forms con Blazor
- ASP 3 per esempi
- annunciato #netstandard 2.1. .NET Core lo supporterà a partire da #netcore3, così come le prossime versione di #xamarin, #mono e #unity.il supporto per #netfx 4.8, invece, non ci sarà. https://aspit.co/bq2
- Steel Style CheckBox per Silverlight 4.0