ASP.NET打包生成zip压缩文件
2020-12-07 07:51
标签:com http style blog class div img c code java log 注:需要下载一个
ICSharpCode.SharpZipLib.dll 组件,并添加引用 ASP.NET打包生成zip压缩文件,搜素材,soscw.com ASP.NET打包生成zip压缩文件 标签:com http style blog class div img c code java log 原文地址:http://www.cnblogs.com/Yashull/p/3701743.htmlusing System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using Microsoft.Win32;
using System.Diagnostics;
using ICSharpCode.SharpZipLib.Zip;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
string str = "1.jpg|2.jpg|3.jpg";//文件名
string saveName = "test";//保存的文件名
MemoryStream ms = new MemoryStream();
byte[] buffer = null;
using (ZipFile file = ZipFile.Create(ms))
{
file.BeginUpdate();
file.NameTransform = new MyNameTransfom();//通过这个名称格式化器,可以将里面的文件名进行一些处理。默认情况下,会自动根据文件的路径在zip中创建有关的文件夹。
string[] s = str.Split(‘|‘);
foreach (string item in s)
{
file.Add(Server.MapPath("~/newImages/" + item + ""));
}
file.CommitUpdate();
buffer = new byte[ms.Length];
ms.Position = 0;
ms.Read(buffer, 0, buffer.Length);
}
Response.AddHeader("content-disposition", "attachment;filename=" + saveName + ".zip");
Response.BinaryWrite(buffer);
Response.Flush();
Response.End();
}
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
}
}