我正在尝试在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变得无效?
发布于 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。
https://stackoverflow.com/questions/14616202
复制相似问题