我正在尝试使用 FileSystem API 使用 FileSystem API 将 SPA 上上传的文件写入本地沙盒文件系统。
文件是用 drop acion 上传的,我可以在回调中获取File对象数组。从File我可以得到ReadableStream调用stream方法(是的,它只返回可读的流)。
考虑到上传的文件可能足够大,我会选择流而不是完全加载到 blob 中,然后写入 FileSystem api。
因此,按照文档的步骤是:
- 通过异步调用获取
FileSystem(DOMFileSystem) 。webkitRequestFileSystem root获取作为 FileSystemDirectoryEntry的道具- 通过
getFile(带有标志create:true)创建一个返回(异步)a的文件FileSystemFileEntry
现在从 FileEntry 我可以得到一个 FileWriter 使用createWriter,但它已经过时(在 MDN 中),并且无论如何它是一个 FileWriter 而我希望获得一个WritableStream而不是为了使用pipeTo上传的文件 Handler->ReadableStream。
所以,我看到在控制台FileSystemFileHandler中定义了类(接口),但我不明白如何从FileSystemFileEntry. 如果我能获得一个,FileSystemFileHandler我可以调用createWritable来获得一个FileSystemWritableFileStream我可以用 ReadStream 进行“管道”的操作。
谁能澄清这个烂摊子?
参考: https://web.dev/file-system-access/ https://wig.github.io/file-system-access/#filesystemhandle https://developer.mozilla.org/en-US/docs/ Web/API/文件系统文件条目