zoukankan      html  css  js  c++  java
  • 多个文件下载打包生成zip格式下载

    这个多个文件下载生成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}_", "");
        }
    }  

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

  • 相关阅读:
    json for modern c++(nlohmann json)使用小计
    你到底是如何上网的[转载]
    opencv编译
    二维码解析(编译zxing-cpp)
    otl odbc小计
    解决github clone慢的问题
    网络编程小计
    模板小计
    c++开发遇到的错误和引用配置
    IOCP Input/Output Completion Port IO完成端口
  • 原文地址:https://www.cnblogs.com/superMay/p/5992117.html
Copyright © 2011-2022 走看看