使用 JSzip 将多个 blob 转换为单个 zip 文件?

问题描述 投票:0回答:1

我尝试使用单个 ZIP 文件下载多个图像,但得到的结果相反。这是下载 zip 文件,但它们位于单独的 zip 文件中。 当我控制台记录

urls[]
数组时,它们出现在不同的数组中。

const fileURLs = window.URL.createObjectURL(result);// that is blob 
var zip = new JSZip();
var count = 0;
var zipFilename = "Selective.zip";
var urls = [ // i try to make them array 
fileURLs 
];

console.log(urls);

  urls.forEach(function(url){
  var filename = result.name;
  // loading a file and add it in a zip file
  JSZipUtils.getBinaryContent(url, function (err, data) {
     if(err) {
        throw err; // or handle the error
     }
     zip.file(filename, data, {binary:true});
     count++;
       zip.generateAsync({type:'blob'}).then(function(content) {
          saveAs(content, zipFilename);
       });

  });
});
javascript jquery ajax jszip
1个回答
0
投票

您需要等待所有 blob 写入 zip。

if(count === urls.length) {
  zip.generateAsync({type:'blob'}).then(function(content) {
     saveAs(content, zipFilename);
  });
}
 
© www.soinside.com 2019 - 2024. All rights reserved.