React-native-fetch-blob下载文件

时间:2017-06-20 12:21:46

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

我只想让我的应用程序使用react-native-fetch-blob从服务器下载文件。问题是,文件存储在哪里?我只是在console.log中回复来自react-native-fetch-blob并得到了这个对象

React-native-fetch-blob object callback

这是我的代码

alert("downloading");
RNFetchBlob
    .config({
        useDownloadManager : true, 
        fileCache : true
    })    
    .fetch('GET', 'http://fontawesome.io/assets/font-awesome-4.7.0.zip', {})
    .then((res) => {

        console.log(res);
        alert("Download");
        alert('The file saved to ', res.path());
    })

任何解决方案?

3 个答案:

答案 0 :(得分:1)

要使用rn-fetch-blob直接下载文件,您需要将fileCache设置为true。

btw,react-native-fetch-blob已不再维护,请改用rn-fetch-blob

document of download file directly

RNFetchBlob
  .config({
    // add this option that makes response data to be stored as a file,
    // this is much more performant.
    fileCache : true,
  })
  .fetch('GET', 'http://www.example.com/file/example.zip', {
    //some headers ..
  })
  .then((res) => {
    // the temp file path
    console.log('The file saved to ', res.path())
  })

答案 1 :(得分:0)

我正在使用它,它完美无缺。 你只需要得到这样的路径。

var filePath = res.path();

这是存储文件的地方。

答案 2 :(得分:0)

function downloadFile(url,fileName) {
  const { config, fs } = RNFetchBlob;
  const downloads = fs.dirs.DownloadDir;
  return config({
    // add this option that makes response data to be stored as a file,
    // this is much more performant.
    fileCache : true,
    addAndroidDownloads : {
      useDownloadManager : true,
      notification : false,
      path:  downloads + '/' + fileName + '.pdf',
    }
  })
  .fetch('GET', url);
}

使用此答案肯定会有效