前言:最近接了个项目,需要进行将服务端生成的文件进行打包压缩供前端下载,百度查了下资料,决定采用SharpZipLib C#开园的压缩解压库进行服务器文件压缩,在实现过程,郁闷的是前端接收下载下来的压缩包,解压的时候一直报“文件损坏或文件格式不正确”,
在此记录下这过程,避免以后采坑。
接口端压缩方法(以二进制文件流传输至Http):
/// <summary> /// 批量下载PDF word 文件压缩 /// </summary> /// <param name="downloadZipReportModel"></param> /// <returns></returns> [HttpGet, HttpPost] public void DownLoadZipByReporlFilename(DownloadZipReportModel downloadZipReportModel) { MemoryStream ms = new MemoryStream();//创建内存存储 byte[] buffer = null; using (ZipFile file = ZipFile.Create(ms)) { file.BeginUpdate(); file.NameTransform = new MyNameTransfom(); foreach (var r in downloadZipReportModel.ReportPdfAndWordModel)//downloadZipReportModel 是报告数据对象 里面保存着相关需要下载的文件路径 { file.Add(HttpContext.Current.Server.MapPath($"~/" + r.WordUrl)); file.Add(HttpContext.Current.Server.MapPath($"~/