今天改一個網站的功能,網站提供一些微信的素材,每個頁面對應一套素材,如果會員一張一張下載,那么網站交互性就有點太差了。所以修改的內容就是提供一個按鈕,點擊按鈕將這套圖片和網站信息進行打包下載。
思路:首先是按格式生成網站信息,然后遍歷目錄找到所有素材,將這些文件打包,并使用response輸出。文件打包的實現是使用外部開源庫DotNetZip
代碼實現:新建一個asp.net空白項目,新建一個頁面,引用DotNetZip庫下的Ionic.Zip.dll在頁面中引用Ionic.Zip命名空間
using Ionic.Zip;
批量壓縮載的代碼:在Page_Load中加入
if (!Page.IsPostBack){ Response.Clear(); Response.BufferOutput = false; string[] files = Directory.GetFiles(Server.MapPath("img/")); //網站文件生成一個readme.txt文件 String readmeText = String.Format("README.TXT" +Environment.NewLine+ "官方地址:http://shandongit.com" ); Response.ContentType = "application/zip"; Response.AddHeader("content-disposition", "inline; filename=/"" + String.Format("archive-{0}.zip", DateTime.Now.ToString("yyyy-MMM-dd-HHmmss")) + "/""); //批量壓縮操作 using (ZipFile zip = new ZipFile()) { // the Readme.txt file will not be passWord-PRotected. zip.AddEntry("Readme.txt", readmeText, Encoding.Default); zip.Password = "shandongit.com"; zip.Encryption = EncryptionAlgorithm.WinZipAes256; // filesToInclude is a string[] or List<String> zip.AddFiles(files, "files"); zip.Save(Response.OutputStream); } Response.Close();}
新聞熱點
疑難解答