文件打包下载
使用的dll:ICSharpCode.SharpZipLib
下载地址 http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx
/// <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); } }