JS将接口返回的base64加密后的文件流下载成pdf

发布时间 2023-07-13 18:06:42作者: 车车大人
function base64toPDF(data) {
        var bufferArray = base64ToArrayBuffer(data);
        var blobStore = new Blob([bufferArray], { type: "application/pdf" });
        if (window.navigator && window.navigator.msSaveOrOpenBlob) {
            window.navigator.msSaveOrOpenBlob(blobStore);
            return;
        }
        var data = window.URL.createObjectURL(blobStore);
        var link = document.createElement('a');
        document.body.appendChild(link);
        link.href = data;
        var timestamp = Date.parse(new Date());
        link.download = timestamp + ".pdf";
        link.click();
        window.URL.revokeObjectURL(data);
        link.remove();
    }

    function base64ToArrayBuffer(data) {
        var bString = window.atob(data);
        var bLength = bString.length;
        var bytes = new Uint8Array(bLength);
        for (var i = 0; i < bLength; i++) {
            var ascii = bString.charCodeAt(i);
            bytes[i] = ascii;
        }
        return bytes;
    };