博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多个文件下载打包生成zip格式下载
阅读量:6347 次
发布时间:2019-06-22

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

这个多个文件下载生成zip格式必须先引用一个ICSharpCode.SharpZipLib.dll。

代码如下

 //将多个文件打包成压缩文件zip格式下载
        protected void PkgDownload(IEnumerable<string> files, string zipFileName)
        {
            MemoryStream ms = new MemoryStream();  
            byte[] buffer = null;  
            using (ZipFile file = ZipFile.Create(ms))  
            {  
                file.BeginUpdate();  
                file.NameTransform = new FileNameTransfom();  
                foreach (var item in files)  
                {  
                    file.Add(item);  
                }  
                file.CommitUpdate();  
                buffer = new byte[ms.Length];  
                ms.Position = 0;  
                ms.Read(buffer, 0, buffer.Length);  
            }  
            Response.AddHeader("content-disposition", "attachment;filename=" + zipFileName);  
            Response.BinaryWrite(buffer);  
            Response.Flush();  
            Response.End();  
        } 

 

需要实现一个类 

 

 public class FileNameTransfom : ICSharpCode.SharpZipLib.Core.INameTransform

 

{
    public string TransformDirectory(string name)
    {
        return null;
    }
    public string TransformFile(string name)
    {
        return Regex.Replace(Path.GetFileName(name), @"\d{17}_", "");
    }
}  

 

 特别值得注意的是 这里得到的路径是绝对路径

 

转载于:https://www.cnblogs.com/superMay/p/5992117.html

你可能感兴趣的文章
linux命令basename使用方法
查看>>
windows下开发库路径解决方案
查看>>
linux迁移mysql数据目录
查看>>
脚本源码安装LNMP
查看>>
Percona Server安装
查看>>
函数为左边表达式
查看>>
2015.06.04 工作任务与心得
查看>>
icinga2使用587端口发邮件
查看>>
hpasmcli查看HP服务器内存状态
查看>>
极客工具
查看>>
【14】Python100例基础练习(1)
查看>>
boost bind使用指南
查看>>
使用ntpdate更新系统时间
查看>>
Android M 特性 Doze and App Standby模式详解
查看>>
IE FF(火狐) line-height兼容详解
查看>>
谷歌Pixel 3吸引三星用户, 但未动摇iPhone地位
查看>>
python获取当前工作目录
查看>>
VUE中使用vuex,cookie,全局变量(少代码示例)
查看>>
grep -w 的解析_学习笔记
查看>>
量化交易之启航
查看>>