繁体   English   中英

在Safari中使用FileSaver.js会损坏下载

[英]Using FileSaver.js in Safari damages download

我正在使用FileSaver.js使用FileSaver.js在客户端下载图像。 在Chrome和IE11中效果很好。 但是在Safari 11.1中(我需要支持12+),图像(.png或.jpg)会下载,但无法打开,操作系统会抱怨文件损坏或文件类型不受支持。

我的下载看起来像这样:

 fileName = Ext.isIE || Ext.isSafari ? fileName + fileExtension : fileName; saveAs(new Blob([file], { type: contentType }), fileName); 

(saveAs不会在IE11或Safari中添加文件扩展名,因此添加了fileExtension)

无论如何,file是一个svg字符串,contentType是“ image / png”或“ image / jpeg”。 我还尝试了以下调整:将“; charset = utf-8”附加到没有帮助的contentType上。 在“ data:”之前创建一个dataURL,但是我很确定FileSaver.js应该可以处理这个问题。

我读到,在FileSaver.js中检查浏览器是否为Safari可能存在问题,因此我进入FileSaver.js源代码并将检查更改为Ext.isSafari(使用ExtJs 6)。 没有帮助。 我很沮丧

希望得到所有帮助,谢谢。

当然,问题不在于FileSaver.js。 它甚至与浏览器无关,而是操作系统。

问题是我不能只在SVG斑点上拍.png或.jpg并期望它表现良好。 在Windows(Chrome和IE11)上,“通过扩展名更改进行转换”可以正常工作,但是Mac不接受它为合法文件,因此拒绝了该文件,因为它已损坏。

我可以通过下载扩展名为.svg的svg文件来重新创建此文件,看看它在Mac上可以正常打开,然后将扩展名更改为.png并看到相同的错误消息。 我想Windows会更宽容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM