В настоящее время я использую jszip, jszip-utils, and FileSaver
для zip и загрузки нескольких 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 загружаются все файлы, но Hangs on saveAs.
Попробуйте выполнить следующее после инструкции SaveAs, чтобы очистить буфер
content = null;