此论坛之前已经提出过这个问题,但我找不到令人满意的解决方案。因此问题再次出现。 我正在尝试从Internet上下载文件并将其存储到手机上的本地文件系统中。我收到以下错误:
Uncaught ReferenceError: LocalFileSystem is not defined
我到目前为止的代码是:
function storeFile(bucketName, csvfile){
var region;
s3Client.getBucketLocation(params = {Bucket: bucketName},function(err,data){
if(err) console.log("Error :: Cannot retrieve bucket location", err);
else {
console.log(data);
region = data;
}
});
var url = "http://s3-"+region+".amazonaws.com/"+bucketName+"/"+csvfile;
window.requestFileSystem(LocalFileSystem.PERSISTENT,0,
function(fs){
filePath = fs.root.fullPath + "/" + csvfile;
fileTransfer = new FileTransfer();
fileTransfer.download(url, filePath,
function (entry) {
console.log(entry.fullPath); // entry is fileEntry object
},
function (error) {
console.log("Some error");
});
}, function(err){
console.log("Request File System failure");
});
}
我是否需要在我的应用中添加任何插件?我已经添加了File和FileTransfer插件。顺便说一句,在onDeviceReady被触发后调用此函数。
编辑: 我不和AngularJs合作。我的代码在NodeJs上。其次,我没有像离子框架等那样可能存在问题的依赖性。已对已成功下载和存储的其他数据测试了相同的代码。在我将代码更改为从亚马逊服务器上的特定位置下载后,问题就出现了。如果有人能为我解决这个问题,那就太好了。我可以通过代码访问存储桶和区域。唯一的问题是LocalFileSystem。
答案 0 :(得分:0)
能够解决问题。刚刚删除并重新添加了文件和文件传输插件。
要删除 cordova plugin rm org.apache.cordova.file
和cordova plugin rm org.apache.cordova.file-transfer
。
cordova plugin add org.apache.cordova.file
和cordova plugin add org.apache.cordova.file-transfer
。
它可能会告诉您这些插件很快就会被弃用或类似的东西。您还可以选择使用更高版本。要添加,您可以使用
cordova plugin add cordova-plugin-file
和cordova plugin add cordova-plugin-file-transfer
。只需检查它们是否在平台文件夹中的相应版本下可用。