Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在内部(应用程序的专用)存储中下载图像文件_Javascript_Android_Ios_React Native - Fatal编程技术网

Javascript 如何在内部(应用程序的专用)存储中下载图像文件

Javascript 如何在内部(应用程序的专用)存储中下载图像文件,javascript,android,ios,react-native,Javascript,Android,Ios,React Native,我正在做一个react原生项目,其中我需要从服务器下载一些图像文件,并将它们保存在应用程序中。这些文件必须保存在应用程序的内部专用存储中,这样应用程序用户就不能(在非根手机中)找到这些文件。我在谷歌上搜索了以下选项: 使用AsyncStorage并以Base64字符串格式保存图像文件。(我希望避免这种情况,因为这将增加开销[增加文件大小一点点]+不必要的转换到base64的任务) 使用rn fetch blob library以blob格式直接从服务器获取数据,但我找不到内部存储保存选项。此选项

我正在做一个react原生项目,其中我需要从服务器下载一些图像文件,并将它们保存在应用程序中。这些文件必须保存在应用程序的内部专用存储中,这样应用程序用户就不能(在非根手机中)找到这些文件。我在谷歌上搜索了以下选项:

  • 使用AsyncStorage并以Base64字符串格式保存图像文件。(我希望避免这种情况,因为这将增加开销[增加文件大小一点点]+不必要的转换到base64的任务)
  • 使用rn fetch blob library以blob格式直接从服务器获取数据,但我找不到内部存储保存选项。此选项帮助我将文件存储在文档或下载等中,但我需要将文件存储在内存中
  • 我可以使用URI作为所有图像的源,但我希望尽可能避免对服务器的依赖

  • 请建议在react原生应用程序中下载图像[或其他格式]文件的简单方法,该文件必须位于应用程序的私有数据文件夹中,而无需转换为字符串或任何其他介质

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

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

    希望这有帮助。快乐编码:)

    应用程序用户能在这里看到我的文件吗?显然不能。在iOS中是严格禁止的,在android中,可以通过安卓/data/appid/data/obb和所有。。。。。如果你得到了我想要说明的东西。但这就是其他应用程序所做的一切。如果需要某种加密,则必须在保存之前和获取之后手动加密和解密文件。是。谢谢苏拉杰。