ASP.NET : 如何将服务端的多个文件打包下载
2015-11-02 19:45
591 查看
正在开发的系统中包含了这部分功能。下面将有关重点的代码粘贴出来,给大家参考
我用到了ICSharpCode.SharpZipLib这个dll. 据我所知,凡是现在做压缩和解压缩之类的程序,很少有人会不用这个组件的。赞一个先
1. 核心代码
另外,我专门写了一个NameTransfom
2. 测试效果
我用到了ICSharpCode.SharpZipLib这个dll. 据我所知,凡是现在做压缩和解压缩之类的程序,很少有人会不用这个组件的。赞一个先
1. 核心代码
MemoryStream ms = new MemoryStream(); byte[] buffer = null; using (ZipFile file = ZipFile.Create(ms)) { file.BeginUpdate(); file.NameTransform = new MyNameTransfom();//通过这个名称格式化器,可以将里面的文件名进行一些处理。默认情况下,会自动根据文件的路径在zip中创建有关的文件夹。 file.Add(Server.MapPath("~/images/1.jpg")); file.Add(Server.MapPath("~/images/2.jpg")); file.Add(Server.MapPath("~/images/3.jpg")); file.CommitUpdate(); buffer = new byte[ms.Length]; ms.Position = 0; ms.Read(buffer, 0, buffer.Length); } Response.AddHeader("content-disposition", "attachment;filename=Test.zip"); Response.BinaryWrite(buffer); Response.Flush(); Response.End();
另外,我专门写了一个NameTransfom
using System.IO; 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 }
2. 测试效果
相关文章推荐
- ASP.NET : 如何将服务端的多个文件打包下载
- 【Asp.Net MVC】日常---路由
- asp.net 微信支付源码demo 官方坑爹
- .NET中First,FirstOrDefault,Single,SingleOrDefault的区别是什么
- ASP.NET MVC API 路由生成规则
- Asp.net实现直接在浏览器预览Word、Excel、PDF、Txt文件(附源码)
- ASP.NET如何使用web服务的会话状态
- asp.net中“从客户端中检测到有潜在危险的Request.Form值”错误的解决办法
- ASP.NET Identity Authentication
- AspectJ AOP切面编程(XML配置)
- vs2013下, asp.net mvc5 使用和发布rdlc报表的步骤 ,使用ef来获取数据
- Asp.net中的页面跳转及post数据
- CS1061: “ASP.send_aspx”不包含“sender_TextChanged”的定义,并且找不到可接受类型为“ASP.send_aspx”的第一个参数的扩展方法“sender_Text
- 玩转树莓派--树莓派准备工作
- asp.net报错“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”的解决办法
- asp.net报错“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”的解决办法
- asp.net中“从客户端中检测到有潜在危险的Request.Form值”错误的解决办法
- ASP.NET如何使用web服务的会话状态
- asp.net 错误提示:Could not load type 'SendEmail.WebPage'
- asp.net 页面上的点击事件