時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
簡單頁面下載通過Response.WriteFile()函數(shù)將指定的文件直接寫入HTTP內(nèi)容輸出流。該方 法實現(xiàn)比較簡單,本例中通過函數(shù)FileDownload()實現(xiàn)文件的下載,代碼如下:
private void FileDownload(string FullFileName)
{
FileInfo DownloadFile = new FileInfo(FullFileName);
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));
Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
Response.WriteFile(DownloadFile.FullName);
Response.Flush();
Response.End();
}
由于在代碼中使用了 FileInfo 類,必須在代碼的開始引用 System.IO 空間,引用代碼如下所示。
using System.IO;
FileInfo 類提供創(chuàng)建、復(fù)制、刪除、移動和打開文件的實例方法,并且?guī)椭鷦?chuàng)建FileStream對象。其中,Length屬性用來獲取當前文件的大小,F(xiàn)ullName 屬性獲取目錄或文件的完整目錄。
FileDownload()函數(shù)實現(xiàn)的原理過程是,首先創(chuàng)建FileInfo類,通過該類獲取要下載文件的信息,最后通過 WriteFile()函數(shù)下載該文件。該方法面臨的問題是 WriteFile 方法使文件的二進制數(shù)據(jù)流向客戶端,它是一個出名的內(nèi)存占用狂,把整個文件載入服務(wù)器的RAM中來提供服務(wù)(實際上它甚至于會占用文件兩倍大小的空間)。對于大文件,這會引起服務(wù)內(nèi)存問題,并且可能重復(fù)ASP.NET過程。因此較大文件均使用高級下載方法。
關(guān)鍵詞標簽:ASP.NET
相關(guān)閱讀
熱門文章 誅仙3飛升任務(wù)怎么做-誅仙3飛升任務(wù)流程最新2022 鐘離圣遺物推薦-原神鐘離圣遺物詞條 解決方法:應(yīng)用程序“DEFAULT WEB SITE”中的服務(wù)器錯誤 使用aspnet_regiis.exe 重新注冊.NET Framework
人氣排行 誅仙3飛升任務(wù)怎么做-誅仙3飛升任務(wù)流程最新2022 asp.net表單提交方法GET\POST 在ASP.NET中如何判斷用戶IE瀏覽器的版本 Asp.net中messagebox的實現(xiàn)方法 Asp.net中的web.config配置 在ASP.NET MVC中實現(xiàn)大文件異步上傳 asp.net獲取URL和IP地址 FileUpload上傳多文件出現(xiàn)錯誤的解決方法