Tyl*_*ger 5 pdf safari filereader
目前使用FileReader打开并查看适用于Chrome的PDF.但是,当在Safari上打开pdf并单击下载按钮时,没有任何反应.
var reader = new FileReader();
reader.onloadend = function(e) {
    $window.location.href = reader.result;
}
reader.readAsDataURL(file);
在花了一整天的时间研究类似的问题之后,我明白了问题所在,所以我现在可以与你分享我的知识.
基本上,当您Blob在已打开的浏览器选项卡内部进行渲染时会生成此类问题,因此您的页面URL会发生类似于以下情况的更改:
blob:http://localhost:8080/9bbeffe1-b0e8-485d-a8bd-3ae3ad9a0a51
要求pdf的错误程序是这样的:
var fileBlob = new Blob([response.data], {type: 'application/pdf'});
window.location.hfref = fileBlob;
为什么这不起作用?好吧,你可以看到在页面上呈现的pdf,这样你就可能会认为你的pdf加载得很好.但是,如果您尝试刷新页面或在计算机上下载pdf,则无效.
WTH?所以,最初我真的想到了浏览器周围的某种黑魔法,然后我发现了问题:文件不存在,但它只存储在浏览器中.因此,当您生成blob并将当前选项卡重定向到指向生成的blob url时,会丢失缓存.
现在一切都有道理吗?
您唯一能想到的就是在新标签页中打开Blob网址:
window.open(fileBlob, '_blank');
问题解决了.
| 归档时间: | 
 | 
| 查看次数: | 10052 次 | 
| 最近记录: |