我正在尝试使用 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/文件系统文件条目