我正在使用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);
}
};