菜鸟教程小白 发表于 2022-12-13 17:12:56

ios - 在 Phonegap iOS 中下载文件时出错


                                            <p><p>您好,我正在使用 Phonegap 创建 iOS 应用程序。我正在使用 Filetransfer API 下载图像文件。我正在使用以下代码下载文件</p>

<pre><code>   window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, createFolder, null);

   function createFolder(fileSystem) {
       console.log(&#39;gotFS&#39;);
       fileSystem.root.getDirectory(&#34;MyDirectory&#34;, {
                            create: true,
                            exclusive: false
                            }, MyDirectorySuccess, MyDirectoryfail);
    }

    function MyDirectorySuccess(entry) {
         console.log(&#39;gotDirectorySuccess&#39;);
         downloadFile(entry);
    }
    function downloadFile(entry)
    {
      console.log(&#39;downloadFile&#39;);

      var filePath = entry.fullPath+&#39;test.jpg&#39;;
      var fileTransfer = new FileTransfer();
      var url = &#39;https://www.facebookbrand.com/img/fb-art.jpg&#39;;

      fileTransfer.download(
                         url, filePath, function(entry) {
                         console.log(&#34;success&#34;);
                         }, function(error) {
                         console.log(&#34;error&#34;);
                         }, true, {});
    }
</code></pre>

<p>当我在 iOS 设备上运行它时出现错误:</p>

<pre><code>    FileTransferError {
    body = &#34;Could not create path to save downloaded file: You don\U2019t have permission to save the file \U201cMyRecipeDirectory\U201d in the folder \U201cMonarch13A452.J72OS\U201d.&#34;;
    code = 1;
    &#34;http_status&#34; = 200;
    source = &#34;https://www.facebookbrand.com/img/fb-art.jpg&#34;;
    target = &#34;cdvfile://localhost/root/MyDirectory/test.jpg&#34;;
}
</code></pre>

<p>我该如何解决这个问题? </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这是 cordova-plugin-file-transfer 和 cordova-plugin-file 插件之间的复杂错误。<br/>
FileTransfer 插件正在使用“root”类型的文件插件。为默认值,不能更改任何类型。<br/>
“root”的路径是“/”,这就是问题的原因。<br​​/>
例如,“persistent”的路径在iphone模拟器上为“/user/{your name}/Library/...”。<br/>
您无法访问“/”。<br/></p>

<p>我尝试在 getAvailableFileSystems() 方法中修改 @"root"路径,CordovaLib.xcodeproj 的 CDVFile.m。<br/>
但是设置后app崩溃了。<br/>
没有聪明的办法,我决定采取不自然的方式改变字符串。<br/></p>

<p>CDVFileTransfer.m 第 440 行中的 download() 方法</p>

<pre><code>target = ;
targetURL = [ fileSystemURLforLocalPath:target].url;
</code></pre>

<p>在此下添加代码。</p>

<pre><code>NSString *absoluteURL = ;
if () {
      absoluteURL = ;
      targetURL = ;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 Phonegap iOS 中下载文件时出错,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/38067751/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/38067751/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 Phonegap iOS 中下载文件时出错