fileAdded - 未触发事件

时间:2014-01-28 14:47:58

标签: javascript resumablejs

我正在尝试通过resumable.js从Android文件系统上传文件。我设置了Resumable-Object并使用.fileAdd添加我从本地文件系统请求的文件。根据文档,如果添加了文件,则应触发事件'fileAdded'。但事实并非如此。 那么,是否可以从文件系统添加文件或者是否必须使用'.assignBrowse'方法从UI添加文件?

这就是我的所作所为:

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'));

1 个答案:

答案 0 :(得分: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'));