使用FileSystemFileHandle在Chrome中跨页面重新加载持久化文件描述符



众所周知,由于安全原因,浏览器不支持跨页面重新加载<input/>文件的文件路径。但最近chrome86发布了文件系统访问API,它简化并允许用户读取文件的上下文。如果我们将其与文件系统API配对(不要混淆它们(,在window.requestFileSystem的帮助下,我们可以在加载之间持久化文件,这部分解决了记住和重新填充文件输入堆栈流量问题。

我想知道我们是否可以使用FileSystemFileHandle在重新加载选项卡时重新填充文件。通过requestFileSystem这样做限制了我们的文件大小,因为我们在每次选择时都会复制文件。具体来说,我希望能够在页面重新加载后上传和读取用户选择的文件,而无需将其保存到localFileSystem。

我也将这个问题发布到github问题。

GitHub问题有了答案,在这里转发经过轻微编辑的内容,以节省其他人的点击:

您可以将从showOpenFilePicker获得的文件句柄存储在IndexedDB中,并在随后的页面加载中读取该句柄。一般来说,重新获得访问权限可能需要用户接受另一个权限提示,但对于页面重新加载的情况,当前的Chrome实现可能会使权限授予保持足够长的时间,不需要额外的提示。我们有一些想法可以将其扩展到会话恢复,但目前还没有具体的想法。

最新更新