检查文件时出错。
我使用了一个代码。但我觉得有一些问题。该文件卡在一个文件中。并始终保持下载相同的文件。
这是我如何编码。在下面的代码中。我试图将图像下载到本地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。
请说明我的错误。或者任何正确的代码都会非常有用。
答案 0 :(得分:1)
它与resolveLocalFileSystemURL中的闭包有关.ft的值最终是循环中使用的最后一个。尝试更改
for (var i = 0; i < res.page.attachments.length; i++) {
到
res.page.attachments.forEach(function(attachment) {
和最后}到})。
在循环内部,使用附件而不是res.page.attachments [i]。