我试图抓取一个已经保存在本地的音频文件,并使用firebase上传。我尝试使用react-native-fetch-blob,如下所示:
import RNFetchBlob from 'react-native-fetch-blob'
const fs = RNFetchBlob.fs
但我发现了错误:
Error: file not exists
尽管我使用的路径与存储文件后得到的路径相同。所以我有:
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,并使用它,特别是上传到防火墙存储?我发现的所有示例都是从外部URL抓取文件。
发布于 2017-11-17 02:51:47
在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
}https://stackoverflow.com/questions/43922898
复制相似问题