zoukankan      html  css  js  c++  java
  • 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"等,只需要根据相应的需求在拦截器中配置相应的拦截即可

      到这里,相关的配置就介绍完了,这只是目前根据自己所掌握的知识所做的解决方法,权当抛砖引玉了,如果各位看官有更好的解决方法,欢迎留言,请不吝赐教

  • 相关阅读:
    vim命令大全
    docer中运行crontab
    基于预加载的热区域数据的简单设计
    解析Health端点数据获取异常数据
    微服务链路调用耗时示例图
    Spring Cloud health节点通过注册中心扫描状态的简单实现
    转载:Service Mesh:重塑微服务市场--敖小剑
    Springboot统一参数验证方式
    Spirng boot 启动的时候进行监控检查不通过停止服务与自定义健康监控节点
    准备 Python3 和 Python 虚拟环境
  • 原文地址:https://www.cnblogs.com/aforever/p/11191514.html
Copyright © 2011-2022 走看看