2

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

React-native-fetch-blob 对象回调

这是我的代码

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

有什么解决办法吗?

4

3 回答 3

3

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);
}

使用这个答案它肯定会工作

于 2019-06-08T05:05:26.423 回答
2

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

顺便说一句,react-native-fetch-blob不再维护,请改用rn -fetch-blob

直接下载文件的文件

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())
  })
于 2018-12-08T20:45:14.593 回答
0

我正在使用它,它工作得很好。你只需要得到这样的路径。

var filePath = res.path();

这是您的文件的存储位置。

于 2017-06-20T12:58:54.347 回答