user3201500
user3201500

Reputation: 1618

Same file keep downloading in phonegap

Error in checking the file.

I have use one code. But i think there is some problem. The file got stuck to one file. And always keep dowloading the same file.

here is how i code this. Here in the below code. I am trying to download the images to local sdcard. If the file is already available i dont want it to download. And if not, then download. But it seems its just keep repeat download the same file.

function appReady(datadira){



                    $(".gallery").html("Ready to check remote files...");
                    $.get("http://www.pankhida.com/main/?json=get_page&page_id=115&callback=?", {}, function(res) {
                        if (res.page.attachments.length > 0) {
                            $(".gallery").html("Going to sync some images...");
                            for (var i = 0; i < res.page.attachments.length; i++) {
                                if (knownfiles.indexOf(res.page.attachments[i].url) == -1) {
                                    //alert("need to download " + res[i]);
                                    var ft = new FileTransfer();
                                    var fullPath = res.page.attachments[i].url;
                                    var filename = fullPath.replace(/^.*[\\\/]/, '');
                                    var dlPath = DATADIR.toURL() + "/" + filename;
                                    var uri= res.page.attachments[i].url;

                                    uri = encodeURI(uri);

                                    //console.log("downloading crap to " + dlPath);
                                    window.resolveLocalFileSystemURL(DATADIR.toURL() +"/"+ filename, appStart, function(){
                                            ft.download(uri, dlPath, function(e){
                                                //renderPicture(e.toURL());
                                                alert("Successful download of "+e.toURL());
                                            }, onError, true);


                                        });





                                }
                            }
                        }
                        $(".gallery").html("");
                    }, "json");

                }

I am using window.resolveLocalFileSystemURL which i got from this URL http://www.raymondcamden.com/2014/7/1/Cordova-Sample-Check-for-a-file-and-download-if-it-isnt-there.

Please suggest where i am wrong. Or any correct code will be really helpful.

Upvotes: 0

Views: 311

Answers (1)

Raymond Camden
Raymond Camden

Reputation: 10857

It has to do with the closure inside resolveLocalFileSystemURL.The value of ft ends up being the last one used from the loop. Try changing

for (var i = 0; i < res.page.attachments.length; i++) {

to

res.page.attachments.forEach(function(attachment) {

and the last } to }).

Inside the loop, use attachment instead of res.page.attachments[i].

Upvotes: 1

Related Questions