从服务器压缩excel文件进​​行下载

我试图使用jszip.js从服务器捆绑多个excel文件,应该一起下载到一个zip文件点击。

当我试图replace演示脚本时,我可以创build一个zip文件,但它是空的。

当我将两个文件放在zip.file中时,第一个文件会出现在zip文件中,但已损坏。 喜欢:

var zip = new JSZip(); zip.file('http://website/file1.xlsx', 'http://website/file2.xlsx'); var content = zip.generate({type:"blob"}); saveAs(content, "example.zip"); 

所以我应该把文件的名称放在第一个位置,而不是文件的位置,但是我必须以其他方式访问它。

我想我只是不检查API的工作原理。

如果至less有两个文件在服务器上托pipe,那么这将是一件好事。

JSZip无法下载内容,但如果您需要支持IE <= 9,则可以使用XHR(带有xhr.responseType = "arraybuffer" )或JSZipUtils 。您可以在本文档的该页面中find更多详细信息。

你试图做的就像这个例子 :下载几个文件并压缩它们。

没有复制/粘贴整个代码,例如:

  • 触发ajax调用(使用JSZipUtils,但如果仅支持最新的浏览器,则只能使用responseType = "arraybuffer"
  • 把它们包装成承诺(这里jQuery的承诺,但你可以使用自己的)
  • 将结果添加到一个zip对象
  • 在触发下载之前等待所有的承诺完成