【问题标题】:How to fetch file from url without knowing its extension in React-Native如何在不知道 React-Native 扩展名的情况下从 url 获取文件
【发布时间】:2020-02-28 08:43:53
【问题描述】:

在我的应用程序中,我有一个返回文件的 api。但是,我事先并不知道文件的扩展名。

如何在 React-Native(0.59.8) 中下载该文件?

【问题讨论】:

  • 你知道这是什么类型的响应吗?比如 application/octet-stream, blob..?
  • 似乎是您无法获取文件名的疏忽。也许您应该返回文件类型、路径和大小等。如果您编写了 api,那么您应该能够添加一个类型。

标签: javascript reactjs react-native fetch


【解决方案1】:

尝试使用下面给出的代码。

  import RNFetchBlob from 'react-native-fetch-blob';
  download = async(path) =>{
          console.log('URL', path);

          var date      = new Date();
          var url       =  path;
          var ext       = this.extention(path);
          ext = "."+ext[0];
          const { config, fs } = RNFetchBlob
          let PictureDir = fs.dirs.PictureDir
          let options = {
            fileCache: true,
            addAndroidDownloads : {
              useDownloadManager : true,
              notification : true,
              path:  PictureDir + "/MyFile_"+Math.floor(date.getTime() + date.getSeconds() / 2)+ext,
              description : 'File'
            }
          }
          config(options).fetch('GET', url).then((res) => {
         Alert.alert("Success Downloaded");

    });
        }
      extention(filename){
          return (/[.]/.exec(filename)) ? /[^.]+$/.exec(filename) : undefined;
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-31
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 2011-09-23
    • 2013-08-31
    相关资源
    最近更新 更多