首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 大檔案下載的追蹤與恢復

     編輯:關於ASP.NET

Web 大檔案下載中斷後無法續傳是常見痛點。本文提供可恢復下載方案:追蹤下載進度、支援動態生成檔案、無需 ISAPI/C++ 非託管代碼。

傳統 Response.WriteFile 會將整檔載入記憶體(甚至 2 倍大小),導致記憶體壓力。.NET 1.1 SP1 引入 TransmitFile 分塊傳輸解決記憶體問題,但無法控制響應生命週期、不知下載是否完成/中斷、無法刪除臨時檔、中斷後只能從頭開始。

解決方案:參考 KB 812406,分塊讀取檔案流,每塊發送前檢查 Response.IsClientConnected,斷線則停止保留檔案,完成則刪除臨時檔。恢復下載:從上次中斷位置續傳。

HTTP 協議支援:Accept-Ranges、ETag、Range 標頭實現斷點續傳。範例展示 IIS 初始響應標頭。

(程式碼片段保留)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved