怎么在Javascript中保存zip文件的二进制数据?

本教程将介绍如何在Javascript中保存zip文件的二进制数据?的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

怎么在Javascript中保存zip文件的二进制数据? 教程 第1张

问题描述

我从AJAX响应中得到以下响应:

这是zip文件的响应。
请告诉我怎么在Javascript中保存此文件名.zip。在ZIP内有PDF文件。

我的代码如下:

$.ajax({

 url: baseURLDownload + "/service/report-builder/generateReportContentPDF",
 beforeSend: function (xhr) {
  xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
  xhr.responseType = 'arraybuffer'
 },
 type: "POST",
 data: JSON.stringify(parameter),
 contentType: "application/json",
 success: function(result) {
  console.log("ssss->"+result);
  var base64String = utf8_to_b64(result);
  //window.open("data:application/zip;base64,"+base64String); // It will download pdf in zip
  var zip = new JSZip();
  zip.add("PDFReport.pdf", result);
  content = zip.generate();
  location.href="data:application/zip;base64," + content;
  $.mobile.loading('hide');

 },
 error: function(xhr){
  console.log("Request Status: " + xhr.status + " Status Text: " + xhr.statusText + " " + xhr.responseText);
  $.mobile.loading('hide');
  showAlert("Error occured. Unable to download Report", "Message", "OK");

 }
});

Respose console.log("SSSS->"+result);

PK��Q��F�/crt_pdf_10204725.pdf��uXM�8|p�݃�;w�@p�ܝBp��݂�;|C�ھ�w�=O�]]�%�N�#+�reup�Y�̉�J�3)�O��C�F�M�P�&�rA�@��7T.��z(%h��x���+��M IFS
��4&/
��LM9�98�
�&Pnc�!��m�r�~��)74�04��0�0�M�~"��.ikjG��M�-

推荐答案

最终我得到了问题的答案:

    https://github.com/eligrey/Blob.js/

    https://github.com/eligrey/FileSaver.js/

代码如下:

var xhr = new XMLHttpRequest();
xhr.open("POST", baseURLDownload + "/service/report/QCPReport", true);
xhr.setRequestHeader("Content-type","application/json");
xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
xhr.onreadystatechange = function() {
 if (xhr.readyState == 4 && xhr.status == 200) {
  // alert("Failed to download:" + xhr.status + "---" + xhr.statusText);
  var blob = new Blob([xhr.response], {type: "octet/stream"});
  var fileName = "QCPReport.zip";
  saveAs(blob, fileName);
 }
}
xhr.responseType = "arraybuffer";
xhr.send(JSON.stringify(QCPParameter));

好了关于怎么在Javascript中保存zip文件的二进制数据?的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。