菜鸟教程小白 发表于 2022-12-13 16:04:49

javascript - 如何在内部(应用程序的私有(private))存储中下载图像文件 react 原生


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

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

<p>请建议一种简单的方法来下载 react native 应用程序中的图像[或其他格式]文件,该文件必须位于应用程序的私有(private)数据文件夹中,无需任何转换为​​字符串或任何其他介质。 </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您可以使用 <code>Document Directory</code> 作为保存文件的路径。它将文件保存在您想要的应用程序的存储中,当您想要检索文件时,您已经知道基本路径,您只需要提供文件名即可访问文件。</p>
<pre><code>const dirs = RNFetchBlob.fs.dirs;
RNFetchBlob
.config({
    path : dirs.DocumentDir + `${folder_name}/${filename}`
}).fetch(&#39;GET&#39;, `${fileURL}`).progress((received=0, total=0) =&gt; {
//Handle progress of download here.. May be update UI...
}).then((resp) =&gt; {
   //You can get the path of the file saved using resp.path()
.catch((err) =&gt; {
//Handle error here...               
});
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于javascript - 如何在内部(应用程序的私有(private))存储中下载图像文件 react 原生,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/53479538/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/53479538/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: javascript - 如何在内部(应用程序的私有(private))存储中下载图像文件 react 原生