#944 - Inviare file di grandi dimensioni con un HttpHandler di ASP.NET

Quando è necessario gestire il download di file di grandi dimensioni utilizzando un HttpHandler si può andare incontro a problemi di performance, causati dal fatto che il metodo WriteFile di HttpResponse copia in memoria il file prima di inviarlo al browser, come nello script #510.

Questa tecnica va bene per file che non siano molto grandi, ma quando si arriva a dimensioni considerevoli esiste la possibilità di utilizzare il metodo TransmitFile, che invece invia il contenuto del file a chunk senza copiarli in memoria, velocizzando di molto l'operazione e con un consumo minore di memoria

Response.AddHeader("content-disposition", "attachment; filename=" + file.FileName);
Response.ContentType = contentType;
Response.TransmitFile(filePath);

Per approfondimenti si veda:

#510 Rendere sicuro il download di files con ASP.NET
http://www.aspitalia.com/script/510/Rendere-Sicuro-Download-Files-ASP.NET.aspx


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC