2014-01-28 68 views
0

我试图通过resumable.js从Android文件系统上传文件。我设置了我的Resumable-Object并使用.fileAdd添加我从本地文件系统请求的文件。根据文档,如果添加了一个文件,事件'fileAdded'应该被解雇。但事实并非如此。 那么,是否有可能在文件系统中添加文件,或者是否必须使用'.assignBrowse'方法从UI添加文件?fileAdded-Event not fired

这里就是我所做的:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem){ 

    var resumable = new Resumable({ 
     target: 'v16/chunk', 
     chunkSize: 1024 * 128 
    }); 

    fileSystem.root.getFile(theFileName, {create: false}, function(fileEntry){ 

     resumable.addFile(fileEntry); // File from file system 
     console.log("manual add"); 

     resumable.files.forEach(function(item){ 
      // log the added files 
      console.log(item.fileName); 
      console.log(item.relativePath); // undefined 
      console.log(item.size); // NaN 
     }); 

     console.log("Size " + resumable.getSize()); // NaN 

     resumable.on('fileAdded', function(file){ 
      console.log("File Added"); // Shouldn't this be called? 
      resumable.upload(); 
     }); 

    }, that.get('fail')); 
}, that.get('fail')); 

回答

0

Boah简单,因为它是,我只需要切换的resumable.on(...)resumable.addFile(...)的顺序。现在看起来像这样:

  window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem){ 

         var resumable = new Resumable({ 
          target:'v16/chunk', 
          chunkSize: 1024 * 128 
         }); 

         fileSystem.root.getFile(theFileName, {create: false}, function(fileEntry){ 

          resumable.on('fileAdded', function(file){ 
           console.log("File Added"); 
           resumable.upload(); 
          }); 


          resumable.addFile(fileEntry); 

          resumable.files.forEach(function(item){ 
           console.log(item.fileName); 
           console.log(item.relativePath); 
           console.log(item.size); 
          }); 

          console.log("Size " + resumable.getSize()); 


         }, that.get('fail')); 

      }, that.get('fail'));