React Native RNFetchBlob下载后获取文件的URI

时间:2019-06-20 16:17:19

标签: react-native react-native-fetch-blob

我正在开发一个React Native项目。我现在想要做的是将下载的文件下载并保存到设备中。我正在使用此软件包https://www.npmjs.com/package/rn-fetch-blob下载文件。

这是我的代码

RNFetchBlob.config({
        fileCache: true,
      })
      .fetch('GET', 'https://static.standard.co.uk/s3fs-public/thumbnails/image/2016/05/22/11/davidbeckham.jpg?w968', {

      })
      .then((res) => {
        Alert.alert(res.path());
      })

下载后,res.path会返回这样的路径。

enter image description here

我正在尝试将其转换为要使用Image组件显示的URI。我尝试将以下状态对象绑定到Image组件。

{
  uri: res.path()
}

它没有用。这就是为什么下一次尝试将路径转换为URI并显示uri的原因。我该怎么办?

1 个答案:

答案 0 :(得分:0)

尝试提供文件的下载路径,


      const directoryFile = RNFS.ExternalStorageDirectoryPath + "/FolderName/";
      RNFS.mkdir(directoryFile);
      const urlDownload = input.url;
      let fileName;      
      fileName = "filename.zip";  
      let dirs = directoryFile + fileName;
      RNFetchBlob.config({
        // response data will be saved to this path if it has access right.
        path: dirs
      }).fetch("GET", urlDownload, {
      //some headers ..
    })
    .then(res => {
        console.log("The file saved to ", res.path());
        //RNFS.moveFile(dirs, directoryFile + fileName); // -> uncomment this line if it still does not store at your desired path
        alert("File Downloaded At Folder");
    })
    .catch(err => {
      console.log("Error: " + err);
    });