gpt4 book ai didi

javascript - Safari/iOS 中 'download' 属性的替代方法

转载 作者:IT王子 更新时间:2023-10-29 08:16:33 24 4
gpt4 key购买 nike

我有一个使用 base64 创建的 blob,我需要将此数据作为 pdf 格式下载。

我创建了这个片段:

    var blob = new Blob([byte]);
var link = document.createElement('a');

link.href = window.URL.createObjectURL(blob);
link.target = '_blank';
var fileName = name + '.pdf';
link.download = fileName;
link.click();

它适用于所有浏览器,但 iOS 上的 safari mobile 除外。

文件确实下载了,但是文件名是“未知”,扩展名丢失导致无法打开。

问题是 download attribute在此浏览器和 IE 上缺乏支持。

IE 有很多变通办法,但我没有找到 Safari/iOS 的变通办法。

您知道如何在此浏览器中下载从 base64(不涉及 XHR)获得的 blob 吗?

谢谢

最佳答案

I need to make this data downloadable as a pdf (...) in safari iOS

简短回答:你不能。由于这个bug无法在 Safari iOS 上下载文件


另一种方法是使用正确的 MIME 类型在浏览器上打开文件,这样它就可以显示其内容(然后用户可以根据需要手动下载它)。

确保在创建 Blob 时传递 mime 类型。 reference

var blob = new Blob([byte], {type: 'application/pdf'});

最后,我强烈建议您使用 FileSaver.js它可以处理大多数极端情况/多个浏览器支持在 javascript 中保存(或在本例中打开)文件。

关于javascript - Safari/iOS 中 'download' 属性的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55760169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com