首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为URL.createObjectURL设置自动撤销

为URL.createObjectURL设置自动撤销
EN

Stack Overflow用户
提问于 2013-01-31 08:04:18
回答 1查看 1.8K关注 0票数 3

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

代码如下:

代码语言:javascript
运行
复制
var res = xhr.response;
var blob = new Blob([res]);
var url = window.URL.createObjectURL(blob, {autoRevoke : false}); 

下面是错误:

代码语言:javascript
运行
复制
Uncaught TypeError: Type error background.js:52

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-26 03:28:40

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

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

你能像用户看到的那样更多地谈一谈这个功能吗?你链接到了什么?

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14616202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档