Chrome扩展下载文件没有提示



我正在制作一个扩展程序,其中用户正在设置一些配置,并且根据其选择,需要在后台下载PNG文件并保存下来作为在某个地方进行的文件,以便以后可以访问它。它必须保存为文件,也必须通过其最终路径注入页面。

阅读CHOME的[fileSystem][1] API,所有方法都向用户发送提示,以便下载文件。有什么办法可以将文件保存到位置而不提示用户下载?

为了结束今年的问题,我正在引用和扩展Woxxom的评论并将其作为答案。

关键是使用fetch下载原始数据作为斑点类型。然后,您可以使用下载属性通过锚固标签(链接(保存它。您可以模拟"单击"。在链接上使用JavaScript(如果需要将其保存在后台(。

这是一个示例(或多或少复制了另一个,所以发布(。

const data = ''; // Your binary image data
const a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
const blob = new Blob([data], {type: "octet/stream"}),
const url = window.URL.createObjectURL(blob);
a.href = url;
a.download = fileName; // Optional
a.click();
window.URL.revokeObjectURL(url);

这并非没有其故障。例如,它与小文件尺寸最有效(浏览器的确切大小相差,通常约为2MB最大(。下载属性需要HTML5支持。

最新更新