當使用 ASP.NET 回應大型檔案的時候,通常有三種方式可以實做,但使用上有幾個地方要特別注意:
第一種:使用 Response.WriteFile() 方法
[code:c#]
Response.ContentType = "application/download";
Response.WriteFile(@"C:\VeryBigFile.zip");
[/code]
注意事項:
-
-
使用此方法會支援檔案續傳功能。( HTTP 1.1 )
第二種:使用 Response.BinaryWrite() 方法
[code:c#]
Response.ContentType = "application/download";
Response.BinaryWrite(File.ReadAllBytes(@"C:\VeryBigFile.zip"));
[/code]
注意事項:
- 使用此方法會支援檔案續傳功能。( HTTP 1.1 )
第三種:使用 Response.TransmitFile() 方法
[code:c#]
Response.ContentType = "application/download";
Response.TransmitFile(@"C:\VeryBigFile.zip");
[/code]
注意事項:
-
當需要回應很大的檔案時,最適合用此方法!因為使用 TransmitFile() 方法不會將檔案內容緩存於記憶體中,執行的效能最好。
-
缺點是使用此方法會讓 ASP.NET 無法支援續傳功能。
相關網址