从服务器压缩 excel 个文件以供下载
zip excel files from the server for download
我正在尝试使用 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 是如何工作的。
如果能得到一个至少有两个托管在服务器上的文件的例子就好了...
JSZip 无法下载内容,但您可以使用文档的 XHR(使用 xhr.responseType = "arraybuffer"
)或 JSZipUtils if you need to support IE <= 9. You can find more details on this page。
您尝试做的事情看起来像 this example:下载几个文件并压缩它们。
没有copy/pasting整个代码,示例:
- 触发 ajax 调用(使用 JSZipUtils,但如果您只支持最近的浏览器,您可以轻松地只使用
responseType = "arraybuffer"
)
- 将它们包装成承诺(jQuery 这里是承诺,但您可以使用自己的)
- 将结果添加到 zip 对象中
- 在触发下载之前等待所有承诺完成
我正在尝试使用 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 是如何工作的。
如果能得到一个至少有两个托管在服务器上的文件的例子就好了...
JSZip 无法下载内容,但您可以使用文档的 XHR(使用 xhr.responseType = "arraybuffer"
)或 JSZipUtils if you need to support IE <= 9. You can find more details on this page。
您尝试做的事情看起来像 this example:下载几个文件并压缩它们。
没有copy/pasting整个代码,示例:
- 触发 ajax 调用(使用 JSZipUtils,但如果您只支持最近的浏览器,您可以轻松地只使用
responseType = "arraybuffer"
) - 将它们包装成承诺(jQuery 这里是承诺,但您可以使用自己的)
- 将结果添加到 zip 对象中
- 在触发下载之前等待所有承诺完成