0

我正在尝试使用 jszip.js 从服务器捆绑多个 excel 文件,这些文件应该在单击时作为 zip 文件一起下载。

当我只是尝试替换演示脚本时,我可以创建一个 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 是如何工作的。

获得一个包含至少两个托管在服务器上的文件的示例会很棒......

4

1 回答 1

2

JSZip 无法下载内容,但如果您需要支持 IE <= 9,您可以使用 XHR (with xhr.responseType = "arraybuffer") 或JSZipUtils 。您可以在文档的此页面上找到更多详细信息。

你尝试做的看起来像这个例子:下载几个文件并压缩它们。

无需复制/粘贴整个代码,示例:

  • responseType = "arraybuffer"触发 ajax 调用(使用 JSZipUtils,但如果您只支持最近的浏览器,您可以轻松地使用 a )
  • 将它们包装成 Promise(这里是 jQuery Promise,但您可以使用自己的)
  • 将结果添加到 zip 对象中
  • 在触发下载之前等待所有承诺完成
于 2016-01-11T18:56:45.707 回答