java web项目 使用elfinder 实现文件管理器(二)
在上一篇的elfinder配置里面,给大家展示了一下基本配置,对于url及权限配置这一块一直没来得及更新,今天就把剩下的这一部分补上
打开 elfinder-servlet-2.jar 的源码,打开这个类cn.bluejoe.elfinder.controller.ConnectorController,我们可以看到映射路径为”connector”,这就是前台请求后台时的url路径
这个路径太短,显然在稍大型的项目中是不合适的,容易引起冲突,所以需要改一下
我们知道,jar包的本质其实还是一个压缩包,所以我这里采取的方式就是改源码,然后重新编译,再压缩回去替代掉原来的就可以了,具体操作如下:
第一步当然是配好环境,即要将这个jar包放进来,如果是动态web工程,直接复制到lib目录中,如果是maven工程就引入依赖,然后照着ConnectorController类所在的路径,在自己的src目录下建这样一个一模一样的类:
建好类过后,将源码复制到新建的类里面
这样url就可以随便改了,如下所示
不同的IDE编译方式不同,自行百度编译方法,此处使用的eclipse,设置的为自动编译,所以修改完成后,找到本工程所在磁盘的位置,编译后的class文件一般在WEB-INF/classes文件夹中,再根据自己创建的ConnectorController类所在路径即可找到,注意这里的文件含有的$符号的类是这个类中的内部类编译后的文件,也属于这个类,所以要一起复制
然后用任意款解压软件打开elfinder-servlet-2.jar 这个jar包,将刚编译的文件替换掉原有的class文件保存即可
jar包改造完成了,接下来就是改相应的配置即可了,主要有以下几点(具体可参照上一篇文章的基本配置):
1、页面的连接url,这里要跟后台对应上
2、因为项目中的 CommonsMultipartResolver 这个类文件上传时有问题,配置了拦截器,所以这里要改web.xml中的拦截url为改变后的
到这里,关于url的修改就完成了
接下来就是设置权限了,目前没有找到太多参考文档,我使用的权限限制的方法是直接修改其显示的菜单选项
因为elfinder提供自定义菜单内容的,具体内容参考 elfinder菜单配置 ,根据不同的权限,配置不同的菜单,这里我使用的是jsp页面,所以将相应的菜单放入Model里,页面直接使用EL表达式取出即可,各选项对应内容为
key | 释义 |
"navbar" | 左侧文件夹预览栏右键菜单 |
"cwd" | 文件操作显示区域右键菜单 |
"files" | 在文件上右键选择时 |
参照文档,就可以自定义自己各权限的操作菜单啦
当然,单纯的不显示菜单并不能避免通过url等来操作,通过分析每一次操作发送的url发现每一种操作的请求中的"cmd"参数的值都不同,如打开文件为"open",下载为"file"等,只需要根据相应的需求在拦截器中配置相应的拦截即可
到这里,相关的配置就介绍完了,这只是目前根据自己所掌握的知识所做的解决方法,权当抛砖引玉了,如果各位看官有更好的解决方法,欢迎留言,请不吝赐教