ASP.NET 可以透過DotNetZip套件將檔案壓縮後下載。

首先需下載 DotNetZip(連結) 套件包。解壓縮後如下圖所示:

 

在專案中引入Ionic.Zip.dll參考後,執行以下程式碼即可下載檔案。

Response.Clear();
Response.ContentType = "application/zip";
Response.AddHeader("content-disposition", "filename=" + "ZipFileName.zip");

string filepath = "";
string new_filename = "";
using (ZipFile zip = new ZipFile())
{
     zip.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding("UTF-8");
     zip.AddFile(filepath).FileName = new_filename;
     zip.Save(Response.OutputStream);
}

DotNetZip 預設無法處理中文字,因此需執行 ProvisionalAlternateEncoding 設定檔案編碼格式方能正常顯示中文。

AddFile 將實體檔案的路徑加入到zip的清單中。可以透過FileName屬性設定新的檔案名稱。

執行Save方法時,會將zip中的檔案清單讀取並壓縮。

 

AddFile函數原型如下圖所示,其中directoryPathInArchive是儲存時要將檔案重新設置目錄。

若有設定FileName時則無需設定。

當沒有設定FileName時。預設會與您讀取的目錄結構相同,因此建議輸入空字串。範例程式如下:

zip.AddFile(filePath, "");

 

若須設定zip密碼可透過設定Password屬性設定即可。

zip.Password = "zip_password"; 

 

arrow
arrow
    文章標籤
    .net
    全站熱搜

    Lung-Yu,Tsai 發表在 痞客邦 留言(0) 人氣()