多个文件下载打包生成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}_", "");
}
}
特别值得注意的是 这里得到的路径是绝对路径
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步