I am trying to read an image file using the URI using react-native-fs and redux-saga:

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

Below is the line where I am getting an error while trying to read the image file:

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

Below is the error I am getting:

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 

Can someone please tell me what I am doing wrong?

7

2 Answers

This is how it worked for me with a JPEG file on iOS :

(...) 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); }) 
1

RNFS only read file as string, the default encoding is utf8. image is binary file, you should try some other library to read it

4

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy