我使用以下代码将字节码转换为 zip 文件,但它不会下载响应中发送的实际 xml 和 asc 文件,而是仅下载标准 zip 内容,我不知道我哪里出错了,谁能帮我解决这个问题,
$http({
url:url,
method: requestType,
data:requestBody?requestBody:"",
headers: {
'Content-type': "application/json",
"SessionID":$rootScope.token
},
responseType: 'arraybuffer'
}).success(function (data, status, headers, config) {
let blob = new Blob([data], {type: "application/zip"});
let objectUrl = URL.createObjectURL(blob);
let link = document.createElement('a');
link.href = objectUrl;
link.download = fileName;
link.click();
window.URL.revokeObjectURL(link.href);
$scope.exp = {}; // to reset the export form after submit.
$scope.surveyReportdownloading = false;
$scope.tabActive = false;
}).error(function (error) {
//upload failed
console.log(error);
});
这根本不是下载实际的文件。谁能帮助我解决这个问题。后端团队发送的字节码如下。
"PK:8xJMÆVÞ|xl/workbook.xml ¢( ÍnÂ0ïúÖ>@MpR¸{C,²vdѾ}CR¢¶'n;³³fË«u磵göIñ« ¡+8÷²AþÅvhú]mÐKwⶮµÄBxEwØ ñî<´GX¾s(oµ#6°|~b¬¼5;h¼úAöƽîÍd|ñ¿©rMbFVð~!îØ`nT10Wè~Ø4SäiÅÑ,ÇWøÁÿC|¼í¶ëÃzûL/ó4KËYZG0U:üþÂòPK:8xJnmt?Ø[Content_Types].xml ¢( ÅMNÃ0¯y·] vl¡\À²'ÕøGIiÏÆ#q& TUЪº²lÏ{ßõä·÷é|ãl
mð¥#×ÁX¿,EKU~#æ³éË6f\ê±5Q¼u
Na"x¾©Brx2*½RKÑèZêà <åÔyÙôÕ6=løxÀ²\dwC]±±Z_˵7¿ yě*«ÁÝ: (5ªϑèZêà)ë´zc1 Áã _SØìk °¶w'~äd d èQ9öF⁄´êBÙ/ãâ⁄ÜîüÿkiÛ>þfå"Ç㿽Sç =ÉÞ' ]d £áºE îdþ`s(}Oâ&K\gJü=x?½wÈþ}PK 38xJ£ ²× rels/.rels ¢( PK:8xJILE@¥¶xl/worksheets/sheet1.xml ¢(¥ÛrÇEÅ÷èn\U\¡\q®ª%^ÿþõË´ûà/·W»Ýñì ÿ|"
感谢任何帮助。谢谢!
最佳答案
问题似乎出在 type
参数上,请尝试使用以下代码
您可以从headers
访问content-type
。
如果不起作用,请尝试使用application/zip、application/octet-stream
$http({
url: url,
method: requestType,
data: requestBody ? requestBody : "",
headers: {
'Content-type': "application/json",
"SessionID": $rootScope.token
},
responseType: 'arraybuffer'
}).success(function(data, status, headers, config) {
let blob = new Blob([data], {
type: headers['content-type']
// OR
// type:"application/zip, application/octet-stream"
});
let objectUrl = URL.createObjectURL(blob);
let link = document.createElement('a');
link.href = objectUrl;
link.download = fileName;
link.click();
window.URL.revokeObjectURL(link.href);
$scope.exp = {}; // to reset the export form after submit.
$scope.surveyReportdownloading = false;
$scope.tabActive = false;
}).error(function(error) {
//upload failed
console.log(error);
});
var blob = new Blob([response.data],{type:headers['content-type']});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = "Filename";
link.click();
关于javascript - 如何在javascript中将字节码转换为zip文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42993536/