使用的dll:ICSharpCode.SharpZipLib

下载地址 ​​http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx​


文件打包下载_sed文件打包下载_.net_02

/// <summary>
/// 下载资料
/// </summary>
public void DownloadCourseData()
{
string attachBatchNo = DESHelper.Decrypt(ctx.Get("no"), "simpo");//附件批次号
List<Edu_Attach> edu_AttachList = edu_AttachService.FindAttByNo(attachBatchNo);//获取附件集合
if (edu_AttachList.Count > 0)
{
string pathName = edu_AttachList[0].AttachContent;//附件路径
int pos = pathName.LastIndexOf("/");
string path = pathName.Substring(0, pos + 1);//路径不含文件名
string zipName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + strUtil.GetRnd(4, true, false, false, false, "") + ".zip";//zip文件名
string zipPathName = PathHelper.Map(sys.Path.DiskPhoto) + path.Replace("/static/upload/image", "").Replace("/", "\\") + zipName;
FileStream fs = new FileStream(zipPathName, FileMode.Create);
ZipOutputStream zos = new ZipOutputStream(fs);
foreach (Edu_Attach edu_Attach in edu_AttachList)
{
string filePathName = PathHelper.Map(sys.Path.DiskPhoto) + edu_Attach.AttachContent.Replace("/static/upload/image", "").Replace("/", "\\");
pos = filePathName.LastIndexOf("\\");
string zipEntryName = edu_Attach.AttachName;
ZipEntry zipEntry = new ZipEntry(zipEntryName);
zos.PutNextEntry(zipEntry);
fs = File.OpenRead(filePathName);
byte[] byteArray = new byte[fs.Length];
fs.Read(byteArray, 0, byteArray.Length);
zos.Write(byteArray, 0, byteArray.Length);
}
zos.Finish();
zos.Close();
string downloadFileName = path + zipName;
redirectUrl(downloadFileName);
}
}

View Code