using ICSharpCode.SharpZipLib.Zip;
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
//创建压缩输出流
ZipOutputStream zos = null;
//创建内存流
MemoryStream ms = null;
Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName + ".zip");
ms = new MemoryStream();
//关联压缩流和内存流
zos = new ZipOutputStream(ms);
string strEntryName = fileName + ".pdf";
//创建压缩的对象实体放入压缩流,可循环创建
foreach (string file in filenames)
{
ZipEntry entry = new ZipEntry(Path.GetFileName(file));
entry.DateTime = DateTime.Now;
zos.PutNextEntry(entry);
using (FileStream fs = File.OpenRead(file))
{
int sourceBytes;
do
{
sourceBytes = fs.Read(buffer, 0, buffer.Length);
zos.Write(buffer, 0, sourceBytes);
} while (sourceBytes > 0);
}
}
zos.Finish();
zos.Close();
Response.BinaryWrite(ms.ToArray());
Response.End();