3

我正在尝试在 Javascript 中创建一个 blob 来提供文件。但是,创建的链接window.URL.createObjectURL(blob)会随着时间的推移而失效。我希望能够生成一个只要页面打开就有效的链接。在网上看了一下,看到autoRevoke选项设置为true,所以这让我相信这个url在没有被主动使用的时候被撤销了。我尝试将其设置为 false,但出现 TypeError。

这是代码:

var res = xhr.response;
var blob = new Blob([res]);
var url = window.URL.createObjectURL(blob, {autoRevoke : false}); 

这是错误:

Uncaught TypeError: Type error background.js:52

如何防止 blob 的 url 变得无效?

4

1 回答 1

0

如果您使用此处讨论的 API 将 blob 保存到文件系统:http: //www.html5rocks.com/en/tutorials/file/filesystem/

您可以创建一个将持续存在的文件系统 URL。此解决方案确实有提示用户批准保存文件的缺点。

你能更多地谈论用户会看到的功能吗?你在链接什么?

回应您的评论:我建议您将输入元素保留在 DOM 中,只要您想保留对文件内容的引用。如果您要链接到内容,则可以创建一个链接,该链接使用输入元素的唯一 ID 调用函数。此函数将按需生成一个 blob URL 并将浏览器转发到该 URL。如果您将 URL 用作 img src 或类似的东西,那么您的应用程序可能有一个用户交互,仍然允许您按需创建 blob URL。

于 2013-03-25T19:28:40.183 回答