我正在使用jquery在文件管理器上工作

这是代码:

 var elfinder = $('#elfinder').elfinder({
            url: '<?= $connector; ?>',
            soundPath: '<?= site_url('assets/plugins/elFinder/sounds/rm.wav'); ?>',
            height: 700,
            lang: 'zh_TW',
            uiOptions: {
                // toolbar configuration
                toolbar: [
                    ['back', 'forward'],
                    ['reload'],
                    ['mkdir', 'upload'],
                    ['copy', 'cut', 'paste', 'rm'],
                    ['rename'],
                    ['view', 'sort']
                ]
            },
            contextmenu: {
                navbar: ['open', '|', 'copy', 'cut', 'paste', 'duplicate', '|', 'rm', '|', 'info'],
                cwd: ['reload', 'back', '|', 'upload', 'mkdir', 'paste', '|', 'info'],
                files: [
                    'open', 'quicklook', 'sharefolder', '|', 'download', '|', 'copy', 'cut', 'paste', 'rm', '|', 'rename', '|', 'info'
                ]
            },
            ui: ['toolbar', 'tree', 'stat'],
            handlers: {
                add: function (e) {
                },
                upload: function (e, instance) {
                    alert("test1");
                    //alert("test2");
                    //return false;
                    //console.log(event.data);
                    //console.log(event.data.selected); // selected files hashes list
                }
            }
        });

问题是

1)我想在上传文件之前进行一些检查,如果失败,则取消上传,但是在添加/上传事件中,上传开始后会触发,并触发多次

2)此外,由于上传事件触发了几次,因此它无法捕获上传完成事件

这是事件列表:

https://github.com/Studio-42/elFinder/wiki/Client-event-API

任何建议,非常感谢您的帮助。

更新:

在服务器端找到一个绑定(bind)选项,以覆盖命令,例如“rm mkdir”等...但是,我想在存储时获取用户ID,因此是否存在我可以在客户端覆盖的事件列表?谢谢

https://github.com/Studio-42/elFinder/wiki/Connector-configuration-options

最佳答案

请重写该函数,因为在执行命令之前没有挂接点。

var elfinderInstance =  $('#elfinder').elfinder({ /* Your options */ }).elfinder('instance');

elfinderInstance.upload = function(files) {
    var hasError;
    elfinderInstance.log(files); // print to browser consol
    if (hasError) {
        elfinderInstance.error('upload error');
        return $.Deferred().reject();
    } else {
        return elfinderInstance.transport.upload(files, elfinderInstance);
    }
};

10-07 19:57
查看更多