3

我想使用库zip在客户端保存文件。jszip

这是我的代码:

function zipDownload(){
    var fileName ="test.zip",
        zip = new JSZip(),
        content,
        img,
        data;

    zip.file("hello.txt", "Hello World\n");
    data = zip.generate({type: $.isFunction(window.Blob) ? "blob" : "base64"});
    fileLoader.saveAs(fileName, "application/zip", data);
}

它在除 Safari 8 之外的所有现代浏览器中都能正常工作。

Safari 8 无法保存带有文件扩展名的文件。

这是一个示例http://jsfiddle.net/uvhy34ar/3/,它显示了这个问题的实际效果。

4

1 回答 1

1

我遇到了完全相同的问题。就我而言,我试图保存一个包含带有自定义扩展名 ( .cmf) 的 XML 代码的文件。.xmlSafari 8 总是将扩展附加到我的。因此导致myfile.cmf.xls而不是myfile.cmf.

对我有用的修复是将服务器响应的标头设置为

Content-Type: application/octet-stream

还有沃利亚!-- 不再添加扩展名。

于 2015-06-22T10:52:24.793 回答