Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get file from URI | Expo | React Native

I have ejected project of the expo.

After changing info.plist, now I am able to get my app in the list of "open with app list" and actually able to open that file with my expo(React native app).

App.js

Linking.getInitialURL().then((url) => {
  if (url) {
        console.log(url);
    }

}).catch(err => console.error('An error occurred', err));

this code is giving me this URL.

file:///private/var/mobile/Containers/Data/Application/7E55EB55-7C49-4C0C-B4CB-63AC4F49689E/Documents/Inbox/matters-3.csv

So, that means now I have URL of the email attachment, but How am I able to get the data of that csv string in my app?

So I am assuming, when I click open with my app. The URL that is passed into my app from the system is actually a copy of the document that is placed somewhere in our app’s directory.

But when I trying to access this file with Expo.FileSystem. readAsStringAsync it's giving me an error says, the file is not readable.

is there anything to do with storage permission?

Need Help....?

like image 470
Rutul Patel Avatar asked Nov 05 '18 19:11

Rutul Patel


People also ask

How do you get file in react native?

Introduction. React Native FS provide stat() function to get file details and will return Promise with file details of name, path, ctime, mtime, size, and mode. react native fs stat() function using syntax and response example. react native fs stat() function response.


1 Answers

I think you could use react-native-fs. This here should work and print out the contents of the CSV file to the console.

App.js

var RNFS = require('react-native-fs');

Linking.getInitialURL().then((url) => {
  if (url) {
    RNFS.readFile(url).then((data) => {
      console.log(data);
    }

}).catch(err => console.error('An error occurred', err));
like image 105
cromir Avatar answered Nov 13 '22 05:11

cromir