如何在Javascript中保存zip文件的二进制数据? [英] How to save binary data of zip file in Javascript?

查看:26
本文介绍了如何在Javascript中保存zip文件的二进制数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从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�x0�0Z�-i��%q�e�M�i�"�c��-/��j��齔/ļL瞄�0�>�o��[��6 멆�n��s�$� �#>˘ '��wT�� ���3�36DK�+�̓�t6 ��r��sA:���x�<>n������'U��RLqA+���ݺ�BM��:4ĞP�}���:�}ߣP����?F)�9-�W0���2�{x��#2v8N.$V�>X=/�+�c}���ּ�y���*�J�� ���90�T�L� 3p���*Sfj(���PWWz��O�s�9]&��io|�9�;�5��ʘDW�cl%�%;�u�%[�5�Q]$��[L>�yXg�9��2+&;,؟E�i|���k�k�c蟴CcG�j��4s|x �F1�}��Y��,29�0M=-O�mL��y��^On^�u��a�F9:zc�Sy�-�g��fu�n�C�T:{�Q�u򪠵�.�E(�>W��+��M IFS ��4&;/ ��LM9�98� �&;Pnc�!��m�r�~��)74�04��0�0�M�~"��.ikjG��M�-

推荐答案

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

代码如下:

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文件的二进制数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆