未捕获的参考错误:未定义LocalFileSystem

时间:2015-06-30 07:11:16

标签: javascript cordova amazon-s3 cordova-plugins

此论坛之前已经提出过这个问题,但我找不到令人满意的解决方案。因此问题再次出现。 我正在尝试从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。

1 个答案:

答案 0 :(得分:0)

能够解决问题。刚刚删除并重新添加了文件和文件传输插件。

要删除

cordova plugin rm org.apache.cordova.filecordova plugin rm org.apache.cordova.file-transfer

要添加

cordova plugin add org.apache.cordova.filecordova plugin add org.apache.cordova.file-transfer

它可能会告诉您这些插件很快就会被弃用或类似的东西。您还可以选择使用更高版本。要添加,您可以使用

cordova plugin add cordova-plugin-filecordova plugin add cordova-plugin-file-transfer。只需检查它们是否在平台文件夹中的相应版本下可用。