同一文件继续在phonegap下载

时间:2014-09-11 06:19:55

标签: android cordova

检查文件时出错。

我使用了一个代码。但我觉得有一些问题。该文件卡在一个文件中。并始终保持下载相同的文件。

这是我如何编码。在下面的代码中。我试图将图像下载到本地SD卡。如果该文件已经可用,我不希望它下载。如果没有,那么下载。但它似乎只是继续重复下载相同的文件。

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");

                }

我正在使用window.resolveLocalFileSystemURL来自此网址http://www.raymondcamden.com/2014/7/1/Cordova-Sample-Check-for-a-file-and-download-if-it-isnt-there

请说明我的错误。或者任何正确的代码都会非常有用。

1 个答案:

答案 0 :(得分:1)

它与resolveLocalFileSystemURL中的闭包有关.ft的值最终是循环中使用的最后一个。尝试更改

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

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

和最后}到})。

在循环内部,使用附件而不是res.page.attachments [i]。