我已经尝试按照这个post(来自@Jonathan Amend)的答案从blob实现图像下载。下载功能在Google Chrome中完美运行。但是,在Firefox上测试它时,我最终获得的文件是blob而不是jpg / png / etc.是否还需要其他代码才能使其在Firefox中正常运行?我的代码在ajax中看起来完全相同,但在将数据作为新blob传递之前使用atob对我的数据执行异常:
var blob = new Blob([atob(data)], { type: type });
答案 0 :(得分:1)
不确定发生了什么,但由于某些奇怪的原因,即使设置了类型,也不会在firefox中设置文件的扩展名。为了解决这个问题,我检查了浏览器是否为firefox并在文件名中添加了文件类型扩展名,如下所示:
if(navigator.userAgent.search("Firefox") >- 1) {
var temp = type.split('/');
filename = filename + "." + temp[1];
}
也许你建议一个更好的解决方案?