如果我有完整路径,如何使用 Filesystem.readFile

How to use Filesystem.readFile if I have a full path

在 Capacitor/Ionic/Angular 应用程序中,我试图让用户拍摄视频,在 <video> 标签中查看,我还需要能够将视频数据发送到POST 用户提交时请求。

我正在使用 Cordova 的 MediaCapture 插件获取视频,所以我返回的内容包含 fullPath 形式 file://...

我坚持的一点实际上是从完整路径中获取一个 File/Blob 对象。

我尝试使用 Capacitor Plugins 中的 Filesystem.readFile(),但问题是它需要 path: stringdirectory: FilesystemDirectory。如果我尝试只提供 {path: fullPath},我会收到 "File does not exist" 错误。 FilesystemDirectory 只是给了我几个可供选择的选项,但我不想使用它,因为我已经有了完整的路径,也不想去检查我应该在哪个设备上使用哪个目录。

还有其他方法可以解决这个问题吗?

使用 Capacitor.convertFileSrc('file:///path/to/video.mp4');,然后您将拥有 webview 理解的路径,您可以使用 fetch/xhr 到该路径以获得 Blob。 (请注意,在 iOS 上,如果 运行 处于实时重新加载模式,它将无法工作,因为 iOS 阻止从 http 方案(由实时重新加载服务器使用)到电容器方案(常规电容器方案)的请求通常 运行 时)