Phonegap Filetransfert下载:错误时API创建文件

时间:2013-03-15 13:35:38

标签: cordova download

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

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

这是一种正常的行为,我希望在出错时不会创建文件。

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

我正在使用2.2.0版

非常感谢。

最诚挚的问候。

弗洛朗。

2 个答案:

答案 0 :(得分: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");
        }

答案 1 :(得分:0)

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

Phonegap - Save image from url into device photo gallery

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

对于Android -

<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" />