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";
文章標籤
全站熱搜