Inviare file di grandi dimensioni con un HttpHandler di ASP.NET

di Daniele Bochicchio, in ASP.NET, ASP.NET 2.0, ASP.NET 3.5,

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);

Approfondimenti


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

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

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