[英]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.