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}_", "");
        }
    }  

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

  • 相关阅读:
    笔记本出现故障,蓝屏状态中 沧海
    Form Head Data 沧海
    西门子索毕业生30万违约金败诉 被指培训名不副实 沧海
    Questions about purchasing 沧海
    甲骨文Bosma先生谈托管型CRM 沧海
    有关T型账户 沧海
    到岸成本 沧海
    紧张的学习 沧海
    SOA仍旧看着很美 沧海
    心情变得很糟糕 沧海
  • 原文地址:https://www.cnblogs.com/superMay/p/5992117.html
Copyright © 2011-2022 走看看