我正在为android构建一个phonegap应用程序。我想使用文件和文件传输等插件下载文件。 我使用 -
添加了两个插件cordova插件添加org.apache.cordova.file-transfer
它也成功添加了插件。然后我添加了READ_EXTERNAL_STORAGE& WRITE_EXTERNAL_STORAGE for android。我也更新了config.xml文件。但即使这样,当我执行代码时,我也会收到以下错误 -
未捕获的参考错误:未定义LocalFileSystem。
我的代码是 -
function fileManager() {};
fileManager.download = function (source, callback) {
var fileName = fileManager.fileName(source);
window.requestFileSystem(LocalFileSystem.PERSISTENT,0,
function onFileSystemSuccess(fileSystem) {
alert('success');
fileSystem.root.getFile(
fileName, {create: true, exclusive: false},
function gotFileEntry(fileEntry) {
//var sPath = fileEntry.fullPath.replace(fileName,"");
var sPath = 'cdvfile://localhost/persistent/'
var fileTransfer = new FileTransfer();
fileTransfer.onprogress = function(progressEvent) {
if (progressEvent.lengthComputable) {
loadingStatus.setPercentage(progressEvent.loaded / progressEvent.total);
} else {
loadingStatus.increment();
}
};
fileEntry.remove();
fileTransfer.download (
encodeURI(source),
sPath + fileName,
function(theFile) {
console.log("download complete: " + theFile.toURI());
callback(theFile.toURI());
},
function (error) {
alert('error');
console.log("download error source " + error.source);
console.log("download error target " + error.target);
console.log("upload error code: " + error.code);
}
);
}, function(e){
alert('error');
});
}, function (e) {
alert('error');
});
};
fileManager.fileName = function(source) {
var paths = source.split('/');
return paths[paths.length - 1];
}
我尝试了许多可能的解决方案,但没有一个能达到我的目的。请帮忙。 谢谢和问候。
答案 0 :(得分:0)
你能试试这个直截了当的解决方案吗?
var ft = new FileTransfer();
ft.download(
"http://www.something.com/test.zip", // what u download
"/sdcard/test.zip",// this is the filename as well complete url
function(entry) {
alert("success"); alert(JSON.stringify(entry));
},
function(err) {
alert(err); alert(JSON.stringify(err));
}
);
您也可以尝试参考此链接: http://simonmacdonald.blogspot.co.uk/2012/04/sorry-for-being-gone-so-long-vacation.html