2

我正在尝试使用react-native-fsredux-saga使用 URI 读取图像文件:

file:///var/mobile/Containers/Data/Application/605FB6C0-869C-4128-883E-A59616933C64/Documents/images/52108C66-A087-4942-9DD4-22CBD0327089.jpg

下面是我在尝试读取图像文件时遇到错误的行:

const imageFile = yield call([RNFS, RNFS.readFile], logo.uri);

以下是我得到的错误:

Error: Invalid UTF-8 detected
    at decodeSymbol (utf8.js:194)
    at Object.utf8decode [as decode] (utf8.js:206)
    at FS.common.js:150
    at tryCallOne (core.js:37)
    at core.js:123
    at JSTimers.js:301
    at _callTimer (JSTimers.js:154)
    at _callImmediatesPass (JSTimers.js:202)
    at Object.callImmediates (JSTimers.js:470)
    at MessageQueue.__callImmediates (MessageQueue.js:275)
    at MessageQueue.js:140

有人可以告诉我我做错了什么吗?

4

2 回答 2

3

这就是我在 iOS 上使用 JPEG 文件的方式:

(...)
var RNFS = require('react-native-fs');
(...)
var uri = '{your file uri}'
var img = 'file:///' + (uri.replace('file://', '')); // Must do that for RNFS

RNFS.readFile(img, 'base64') // 'base64' to process binary format
    .then((file) => {
      console.log("Getting image");
      console.log(file);
    })
于 2018-04-07T10:00:25.057 回答
-1

RNFS 仅以字符串形式读取文件,默认编码为 utf8。图像是二进制文件,您应该尝试使用其他库来读取它

于 2018-01-16T07:36:15.077 回答