2

サーバーから PNG ファイルを取得するために fileTransfer.download メソッドを使用しています。

ただし、存在しないファイルをダウンロードしようとすると、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 に答える