【问题标题】:Getting local file in iOS using react native使用本机反应在iOS中获取本地文件
【发布时间】:2017-10-10 21:33:08
【问题描述】:

我正在尝试获取已保存的音频文件本地并使用 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 读取并使用它的示例代码,尤其是上传到 Firebase 存储?我发现的所有示例都是从外部 URL 获取文件。

【问题讨论】:

  • 我遇到了同样的错误.. 使用 React Native 图像选择器并尝试使用 RNFetchBlob 上传到 Firebase。

标签: ios firebase react-native


【解决方案1】:

在 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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多