我使用Easyzip生成了一个zip文件.我可以直接从下载文件夹打开它.但是当下载后尝试打开它时,我收到此错误: – ‘提取文件时出错’.
这是我的后端代码: –
var zip2 = new EasyZip(); zip2.zipFolder('./downloads/'+application._id,function(){ zip2.writeToFile('./downloads/'+application._id+'.zip'); res.setHeader('Content-disposition','attachment; filename='+application._id+'.zip'); res.setHeader('Content-type','application/zip'); var fs = require('fs'); var filestream = fs.createReadStream('./downloads/'+application._id+'.zip'); filestream.pipe(res); }); });
我的angular.js代码
$http.post('/download/archive/' + stateParams._id,{year: year}).success(function (data) { var file = new Blob([data],{type: 'application/zip'}); console.log(file) saveAs(file,'application.zip'); });
请帮我解决这些问题.提前致谢.
解决方法
我有同样的问题,并能够通过使用以下方法解决它:
$http.post()请求中的{responseType:’arraybuffer’}.
有关详细信息,请查看: how to download a zip file using angular以及 AngularJS: Display blob (.pdf) in an angular app
$http.post()请求中的{responseType:’arraybuffer’}.
有关详细信息,请查看: how to download a zip file using angular以及 AngularJS: Display blob (.pdf) in an angular app