簡體   English   中英

ASP.NET - 流式文件到客戶端是否占用服務器內存?

[英]ASP.NET - Does streaming file to the client occupy server memory?

我要求通過Web服務器上運行的應用程序使文件服務器中的文件可供下載。 用戶將單擊應用程序頁面上的可用鏈接,並顯示另存為對話框。 這種用例很常見,我可能會談論一個基本的事情,但如果有人能確認我的以下假設是否正確,我將不勝感激。

1)對於文件服務器上的文件,通過Web服務器中的虛擬目錄虛擬映射以供應用程序訪問(作為鏈接),可以使用內容處理將其直接流式傳輸到客戶端(代碼類似於答案) 這里 ),意思是不涉及任何代碼來處理或分塊文件以便流式傳輸。

2)由於文件是直接從文件服務器流式傳輸的,因此Web服務器在內存或磁盤使用方面沒有受到影響(當然會使用CPU)。

謝謝

由於您希望直接編寫文件並將內存占用空間降至最低,因此請考慮使用HttpResponse.TransmitFile

將指定文件直接寫入HTTP響應輸出流,而不在內存中緩沖它。

據我所知,這是在響應中發送文件的最有效方法,如果你必須通過asp.net編寫它。

Response.AppendHeader("Content-Disposition", "attachment; filename="+ fileName );
Response.TransmitFile(fullPath);
Response.Flush();
Response.End();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM