如何将服务端的多个文件打包下载(转)

简介:

正在开发的系统中包含了这部分功能。下面将有关重点的代码粘贴出来,给大家参考

我用到了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
    }
转自:http://www.cnblogs.com/chenxizhang/archive/2009/12/23/1630844.html
目录
相关文章
|
7月前
Qt rcc静态资源编译及使用 QtInstallframework 打包成安装包后图标丢失问题
Qt rcc静态资源编译及使用 QtInstallframework 打包成安装包后图标丢失问题
83 0
|
PHP
thinkphp图片打包到zip压缩包下载
thinkphp图片打包到zip压缩包下载
201 0
|
7月前
|
JavaScript
用户安装nodejs设置路径打包项目
用户安装nodejs设置路径打包项目
94 1
|
7月前
|
存储
fastdfs源码阅读:上传和下载(文件客户端逻辑)
fastdfs源码阅读:上传和下载(文件客户端逻辑)
262 0
|
7月前
使用 responseentity进行文件的下载
使用 responseentity进行文件的下载
205 0
|
Java Linux
java实现两台linux服务器间下载上传传输文件
java实现两台linux服务器间下载上传传输文件
236 0
|
编解码 Java 应用服务中间件
文件的上传和下载
文件的上传和下载
93 0
|
缓存 前端开发
前端下载并生成文件
前端下载并生成文件
|
缓存 安全 JavaScript
如何实现上传文件到 nodejs 和文件下载
最近拿 next.js 做个全栈项目,需要文件上传和下载,这里记录下实现方式,也写一下使用原生 node 代码如何实现。