熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET 簡單下載的實現

2013-11-13 09:51:34  來源: .NET編程 

  簡單頁面下載通過ResponseWriteFile()函數將指定的文件直接寫入HTTP內容輸出流該方法實現比較簡單本例中通過函數FileDownload()實現文件的下載代碼如下

  private void FileDownload(string FullFileName)

  {

  FileInfo DownloadFile = new FileInfo(FullFileName);

  ResponseClear();

  ResponseClearHeaders();

  ResponseBuffer = false;

  ResponseContentType = application/octetstream;

  ResponseAppendHeader(ContentDisposition attachment;filename= + HttpUtilityUrlEncode(DownloadFileFullName SystemTextEncodingUTF));

  ResponseAppendHeader(ContentLength DownloadFileLengthToString());

  ResponseWriteFile(DownloadFileFullName);

  ResponseFlush();

  ResponseEnd();

  }

  由於在代碼中使用了 FileInfo 類必須在代碼的開始引用 SystemIO 空間引用代碼如下所示

  using SystemIO;

  FileInfo 類提供創建復制刪除移動和打開文件的實例方法並且幫助創建FileStream對象其中Length屬性用來獲取當前文件的大小FullName 屬性獲取目錄或文件的完整目錄

  FileDownload()函數實現的原理過程是首先創建FileInfo類通過該類獲取要下載文件的信息最後通過 WriteFile()函數下載該文件該方法面臨的問題是 WriteFile 方法使文件的二進制數據流向客戶端它是一個出名的內存占用狂把整個文件載入服務器的RAM中來提供服務(實際上它甚至於會占用文件兩倍大小的空間)對於大文件這會引起服務內存問題並且可能重復ASPNET過程因此較大文件均使用高級下載方法


From:http://tw.wingwit.com/Article/program/net/201311/11768.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.