3

我在从 url 获取图像、将图像存储在设备上以及成功打开/查看它时遇到了困难。

我能够成功获取图像(我相信)

我使用 Buffer(npm 缓冲区)将图像转换为 base64,并使用 react-native-fs 将其保存到设备中。我不确定是否需要缓冲区转换。我可以stat图像,一切看起来都很好。当我使用我下载的 FileManager 应用程序并单击文件时,图像是空白的。

let response = await axios.request({
    url: imgUrl
  });
let idxStart = imgUrl.lastIndexOf('/');
let idxEnd = imgUrl.lastIndexOf('.');
let filename = imgUrl.substring(idxStart + 1, idxEnd) + '.jpg';
let path = RNFS.DocumentDirectoryPath + `/${filename}`
let base64data = new Buffer(response.data).toString('base64');

RNFS.writeFile(RNFS.PicturesDirectoryPath + '/' + filename, base64data, 'base64').then(() => {

    RNFS.stat(path).then(info => {
      console.log(info);
    });

    RNFS.readFile(RNFS.PicturesDirectoryPath + '/' + filename, 'base64').then(data => {
      // console.log('data:', data);
    });

  } ,error => {
    console.log('error writing file:', error)
}).catch(error => { console.log('error:', error)});

如果有人可以提供一个简单的工作示例,那就太棒了!

4

0 回答 0