2

我正在使用 fileTransfer.download 方法从我的服务器中检索 PNG 文件。

但是,当我尝试下载一个不存在的文件时,API 会在我手机的文件系统上创建一个大小为 0 位的文件(将其名称传递给下载方法)。

这是正常行为吗,我预计不会在出错时创建文件。

我可以有一些代码来手动删除文件,但我想知道这是否真的需要,或者我是否在滥用 API。

我正在使用版本 2.2.0

非常感谢。

此致。

弗洛伦特。

4

2 回答 2

1

我已经在 Android 中尝试过,希望这也适用于 IOS。

enter code here
 function fun(){
var dfd = $.Deferred(function (dfd){
var remoteFile = "Your link";
var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/')+1);
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
fileSystem.root.getFile(localFileName, {create: true, exclusive: false},
    function(fileEntry) {
var localPath = fileEntry.fullPath;
if (device.platform === "Android" && localPath.indexOf("file://") === 0) {
            localPath = localPath.substring(7);
            }// You need to write IOS instead of Android

    var ft = new FileTransfer();
    ft.download(remoteFile, localPath, function(entry) {
    dfd.resolve('file downloaded');
     // Do what you want with successful file downloaded and then
    // call the method again to get the next file
    //downloadFile();
            }, fail);
             }, fail);
            }, fail);

           });
            return dfd.promise();

        }
                fun().then(function(msg){
            if(msg==="file downloaded")
            {
            alert("Download complete");
            }
            else
            {
            alert("Download error")
            }
            });
            function fail(){
            alert("error");
        }
于 2014-03-10T06:55:42.080 回答
0

嘿,看看我的答案在这里-

Phonegap - 将图像从 url 保存到设备照片库中

让我知道。如果还有问题。在您的 config.xml 中包含以下内容

对于安卓 -

<feature name="http://api.phonegap.com/1.0/file" />
<feature name="File">
       <param name="android-package" value="org.apache.cordova.file.FileUtils" />
</feature>
<feature name="FileTransfer">
      <param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" />
</feature>
<feature name="Storage">
       <param value="org.apache.cordova.Storage" name="android-package"/>
</feature>

对于IOS-

<plugin name="File" value="CDVFile" />
<plugin name="FileTransfer" value="CDVFileTransfer" />
于 2014-03-10T08:40:24.303 回答