在我的角度应用程序中,我需要下载一个zip文件,下载会定期开始,但是客户端会下载一个损坏的zip文件,其大小只有15个字节。 这是请求的代码:
$http.post('/api/download/',data, {
dataType : "binary",
processData : false,
accept:'application/zip',
Encoding: 'gzip',
responseType:'arraybuffer'})
这就是我处理成功回应的方式:
function() {
var data = {}
data.files = $scope.selectedFiles
FileService.download(data,function(resp){
var blob = new Blob([resp], {type: "application/octet-stream"})
console.log('response',resp)
FileSaver.saveAs(blob,'registrazioni.zip',(err) => {
console.log('saved success,error',err);
})
})
}
我读了许多类似的问题,但他们的解决方案并不适用于我
答案 0 :(得分:1)
尝试在Github上的FileSaver上检查此错误:saving Zip file problems
答案 1 :(得分:0)
首先,您需要将responseType设置为arraybuffer.See sending_and_Receiving_Binary_Data。所以你的代码会喜欢这个:
?"CSV_Export_" & Format(Now(), "yyyy-MM-dd hh_mm_ss")
CSV_Export_2017-05-08 15_25_13
在控制器中:
$http.post('/postUrlHere',{myParams}, {responseType:'arraybuffer'})
.success(function (response) {
var file = new Blob([response], {type: 'application/pdf'});
var fileURL = URL.createObjectURL(file);
});
在html页面中:
$scope.cont = $sce.trustAsResourceUrl(fileURL);
此代码将帮助您解决问题。