博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET打包生成zip压缩文件
阅读量:5225 次
发布时间:2019-06-14

本文共 2085 字,大约阅读时间需要 6 分钟。

using System;using System.Collections.Generic;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.IO;using System.Drawing;using System.Drawing.Imaging;using System.Drawing.Drawing2D;using Microsoft.Win32;using System.Diagnostics;using ICSharpCode.SharpZipLib.Zip;public partial class _Default : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {        if (!IsPostBack)        {        }    } protected void btnSave_Click(object sender, EventArgs e)    {        string str = "1.jpg|2.jpg|3.jpg";//文件名      string saveName = "test";//保存的文件名        MemoryStream ms = new MemoryStream();        byte[] buffer = null;        using (ZipFile file = ZipFile.Create(ms))        {            file.BeginUpdate();            file.NameTransform = new MyNameTransfom();//通过这个名称格式化器,可以将里面的文件名进行一些处理。默认情况下,会自动根据文件的路径在zip中创建有关的文件夹。            string[] s = str.Split('|');            foreach (string item in s)            {                file.Add(Server.MapPath("~/newImages/" + item + ""));            }            file.CommitUpdate();            buffer = new byte[ms.Length];            ms.Position = 0;            ms.Read(buffer, 0, buffer.Length);        }

                  //判断如果是火狐浏览器则不进行UTF-8编码

                   System.Web.HttpBrowserCapabilities browser = Request.Browser;
              if (browser.Browser=="Firefox")
                 {

                     Response.AddHeader("content-disposition", "attachment;filename=" + saveName + ".zip");

                 }

              else{

                 //IE和其它浏览器都要进行UTF-8编码,中文不编码会出现乱码

                    Response.AddHeader("content-disposition", "attachment;filename=" +  HttpUtility.UrlEncode(saveName) + ".zip");

                  }

Response.BinaryWrite(buffer);        Response.Flush();        Response.End();     } public class MyNameTransfom : ICSharpCode.SharpZipLib.Core.INameTransform    {        #region INameTransform 成员        public string TransformDirectory(string name)        {            return null;        }        public string TransformFile(string name)        {            return Path.GetFileName(name);        }        #endregion    } }

注:需要下载一个 ICSharpCode.SharpZipLib.dll 组件,并添加引用

转载于:https://www.cnblogs.com/Yashull/p/3701743.html

你可能感兴趣的文章
SSM-SpringMVC一些知识点
查看>>
关于URL编码的问题
查看>>
React.js 小书 Lesson22 - props.children 和容器类组件
查看>>
python之optparse
查看>>
在Js中得到元素的子元素集合注意事项
查看>>
Spring MVC之DispatcherServlet初始化详解
查看>>
多线程篇-GCD-基本概念使用
查看>>
生成唯一的随机数
查看>>
尼玛某前辈把ant 工程 改成android studio工程然后上传了 对我来说 尼玛这玩意就和屎一样...
查看>>
SSM整合(精简版)
查看>>
各种xml文件约束,Eclipse用
查看>>
泰勒展开,傅里叶变换,拉普拉斯变换和Z变换的物理意义
查看>>
Java Concurrentmodificationexception异常原因和解决方法
查看>>
Python 面向对象(其四)
查看>>
客户端访问浏览器的流程
查看>>
Linux——ls
查看>>
操作系统(八) 死锁
查看>>
Java Serializable Objects(序列化)
查看>>
Javascript Tip(!!)
查看>>
delphi 取硬盘号
查看>>