我正在尝试在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变为无效?
答案 0 :(得分:0)
如果使用此处讨论的API将blob保存到文件系统: http://www.html5rocks.com/en/tutorials/file/filesystem/
您可以创建将保留的文件系统URL。此解决方案确实有一个提示用户批准保存文件的缺点。
您能否在用户看到该功能时详细介绍该功能?你链接到什么?
回应你的评论: 我建议将输入元素保留在DOM中,只要您想要保存对文件内容的引用即可。如果您要链接到内容,则可以创建一个链接,该链接使用input元素的唯一ID调用函数。此函数将根据需要生成blob URL并将浏览器转发到该URL。如果您将URL用作img src或类似的东西,那么您的应用程序可能仍然允许您按需创建blob URL。