在我的ReactNative应用程序中,我使用"react-native-vision-camera": "^2.13.5"拍照。
在图片被拍摄并上传后,我想从设备中删除它,但是RNFS ( iOS本机-fs)无法通过iOS和Android设备上的给定路径找到该文件:
我知道错误了
错误: ENOENT:没有这样的文件或目录,打开'/private/var/mobile/Containers/Data/Application/1BB2256A-ED83-407D-9C76-07431268779B/tmp/ReactNative/CE2FA429-76C8-4BD9-925A-BED09B0B77BB.jpeg‘/data/user/0/packagename/cache/mrousavy2423256141715663083.jpg;
:不存在
const photo = await camera.current.takePhoto(); // camera: React.RefObject<Camera>
const task = storage().ref(<ref>).putFile(photo.path)
const result = await task.then(); // Firebase Storage can read and upload the photo
RNFS.stat(photo.path) // <-- Error: The file “CE2FA429-76C8-4BD9-925A-BED09B0B77BB.jpeg” couldn’t be opened because there is no such file.
RNFS.unlink(photo.path) // <-- [Error: ENOENT: no such file or directory, open '/private/var/mobile/Containers/Data/Application/1BB2256A-ED83-407D-9C76-07431268779B/tmp/ReactNative/CE2FA429-76C8-4BD9-925A-BED09B0B77BB.jpeg']
// Prepending file:// Does not work too
RNFS.unlink(`file://${photo.path}`)
RNFS.stat(`file://${photo.path}`) 是因为访问权限导致了本机fs的需求吗?
火柴库是如何访问照片的?
该路径是一个真正的临时文件夹,在应用程序关闭后会被清除吗?
为什么在默认情况下,反应本机--视觉相机--可以保存媒体?
我真的需要手动删除那个媒体还是它被删除了?
env:
"react-native": "0.68.2",
"react-native-fs": "^2.20.0",
"react-native-vision-camera": "^2.13.5",
physical device : iPhone 8 Plus with iOS 15.5发布于 2022-07-05 14:29:00
没有必要删除该文件,因为照片存储在一个临时目录中。当应用程序关闭时,它将被删除。
https://mrousavy.com/react-native-vision-camera/docs/api/interfaces/PhotoFile
发布于 2022-07-05 18:20:47
不要调用RNFS.unlink(photo.path),而是尝试RNFS.unlink(photo.uri)。react本机视觉摄像机API输出带有URI的File对象,而不是路径。
https://stackoverflow.com/questions/72812283
复制相似问题