我目前正在使用jszip, jszip-utils, and FileSaver压缩并下载多个PDF。

self.createZip = function () {
    var docs = self.list.filteredItems();
    var zip = new JSZip();
    var count = 0;
    var zipFilename = "zipFilename.zip";

    docs.forEach(function (item) {
        var filename = item.formDesc() + "_" + item.id() + ".pdf";
        // loading a file and add it in a zip file
        JSZipUtils.getBinaryContent('../career/document/StreamFile/?path=' + item.fileName(), function (err, data) {
            if (err) {
                throw err; // or handle the error
            }
            zip.file(filename, data, { binary: true });
            count++;
            if (count == docs.length) {
                zip.generateAsync({ type: 'blob' }).then(function (content) {
                     try {
                             saveAs(content, zipFilename);
                        } catch (e) {
                            console.log(e);
                        }
                });
            }
        });
    });


该功能当前可用于除IE11之外的所有最新浏览器。在IE11中是获取所有文件,但在saveAs上挂起。

最佳答案

在SaveAs语句后尝试以下操作以清除缓冲区

content = null;

关于javascript - FileSaver saveAs在IE11中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46121069/

10-12 14:21