我正在尝试获取保存在本地 中的音频文件并使用 firebase 上传。我试过使用 react-native-fetch-blob
如下:
从“react-native-fetch-blob”导入 RNFetchBlob
const fs = RNFetchBlob.fs
但是我得到了错误:
错误:文件不存在
即使我使用相同的路径,我也会在存储文件后返回。所以我有:
console.log('Full path is ' + fullPath)//Gives/var/mobile/Containers/Data/Application/2446[...]E1A9/Documents/myfile.mp4
但是当我尝试的时候我
fs.readFile(RNFetchBlob.wrap(fullPath), 'base64').then((data) => ...
我收到“文件不存在”错误。
有人有读取(二进制)文件作为 blob 并使用它的示例代码,尤其是上传到 firebase 存储吗?我发现的所有示例都是从外部 URL 抓取文件。
最佳答案
在iOS平台上,每次访问文件系统时目录路径都会改变。所以如果你需要在 iOS 上读取文件,你需要先获取 dir 路径并用它连接文件名。
// fileUri is a string like "file:///var/mobile/Containers/Data/Application/9B754FAA-2588-4FEC-B0F7-6D890B7B4681/Documents/filename"
if (Platform.OS === 'ios') {
let arr = fileUri.split('/')
const dirs = RNFetchBlob.fs.dirs
filePath = `${dirs.DocumentDir}/${arr[arr.length - 1]}`
} else {
filePath = audioDataUri
}
关于ios - 使用 React Native 在 iOS 中获取本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43922898/