javascript - 如何在javascript中将字节码转换为zip文件

标签 javascript angularjs rest bytecode

我使用以下代码将字节码转换为 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/

相关文章:

javascript - 在 jQuery 中向当前日期添加天数时出现问题

java - 什么是在浏览器中运行的简单位图编辑器(jquery/java/javascript)?

javascript - 脚本不会在浏览器中加载 angular2

javascript - 添加到 Angular 列表功能

javascript - 将附加元素附加并保留到 jQuery ui-autocomplete

Javascript改变html元素的绝对位置

javascript - 如何禁用类型 'number' 的特定输入元素的步骤属性的验证?

java - 休息 API 示例

java - 主机上的 "ClientAbortException",客户端上的 "SocketException: connection rest"

wcf - WCF Rest 服务的 SSL 实现