OGeek|极客世界-中国程序员成长平台

标题: javascript - 如何在内部(应用程序的私有(private))存储中下载图像文件 react 原生 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 16:04
标题: javascript - 如何在内部(应用程序的私有(private))存储中下载图像文件 react 原生

我正在做一个 react-native 项目,我需要从服务器下载一些图像文件并将它们保存在应用程序中。这些文件必须保存在应用程序的内部私有(private)存储中,这样应用程序用户必须无法找到这些文件(在非 root 手机中)。我在谷歌上搜索并找到了以下选项:

  1. 使用 AsyncStorage 并将图像文件保存为 Base64 字符串格式。 (我想避免这种情况,因为这会增加开销 [稍微增加文件大小] + 不必要的与 base64 相互转换的任务)
  2. 使用 rn-fetch-blob 库以 blob 格式直接从/向服务器获取数据,但我无法找到内部存储保存选项。此选项可帮助我将文件存储在 Documents 或 Download 等上,但我需要将文件存储在内部存储器中。
  3. 我可以使用 URI 作为所有图像的来源,但我希望尽可能避免对服务器的依赖。

请建议一种简单的方法来下载 react native 应用程序中的图像[或其他格式]文件,该文件必须位于应用程序的私有(private)数据文件夹中,无需任何转换为​​字符串或任何其他介质。



Best Answer-推荐答案


您可以使用 Document Directory 作为保存文件的路径。它将文件保存在您想要的应用程序的存储中,当您想要检索文件时,您已经知道基本路径,您只需要提供文件名即可访问文件。

const dirs = RNFetchBlob.fs.dirs; 
RNFetchBlob
  .config({
    path : dirs.DocumentDir + `${folder_name}/${filename}`
}).fetch('GET', `${fileURL}`).progress((received=0, total=0) => {
  //Handle progress of download here.. May be update UI...
}).then((resp) => {
   //You can get the path of the file saved using resp.path()
.catch((err) => {
  //Handle error here...                
});

关于javascript - 如何在内部(应用程序的私有(private))存储中下载图像文件 react 原生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53479538/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) Powered by Discuz! X3.4