六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 225|回复: 0

ASP.NET : 如何将服务端的多个文件打包下载

[复制链接]

升级  69.5%

788

主题

788

主题

788

主题

探花

Rank: 6Rank: 6

积分
2390
 楼主| 发表于 2013-1-1 22:03:36 | 显示全部楼层 |阅读模式
<div id="cnblogs_post_body">正在开发的系统中包含了这部分功能。下面将有关重点的代码粘贴出来,给大家参考
我用到了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    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    }
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表