jsp 百度编辑器配置 整合springmvc注意细节
百度编辑器是目前比较流行的一个富文本编辑器,本博客的后台用的也是百度编辑器。百度编辑器虽然好用,但是在一些场景下图片上传是一件很尴尬的事情。根据官网文档的描述百度编辑器的图片上传只能保存在网站根目录下
如果图片只能保存在根目录下这会带来许多问题,如果项目重新发布那就意味着图片也就覆盖了,这显然是我们不能接受的,而且如果我们的网站已经配置了nginx图片服务器或者其他图片服务器,它们都不在我们的网站根目录下我们该如何处理呢?
我在官网找了半天没有找到解决的办法,看来只能出大招了,自己改改源码吧,在源码中把图片的保存路径改成可以配置的路径这样就可以想怎么保存就怎么保存了。
修改百度编辑器文件保存根目录
我使用编辑器自带的java图片上传例子做说明,百度编辑器自带文件上传功能是通过一个jsp文件来完成的
1、首先下载百度编辑器的完整版源码
点击下载-> 1.4.4.3 源码地址
2、解压后把java后台源码导入到项目中
当然导入前你得确保你的项目中已经加入了百度编辑器所依赖的一些jar包,这些jar包在jsp/lib
文件夹中,jar包列表如下,
当然如果你的项目使用maven构建的话也可以直接通过mave来引入jar包。
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.9</version> </dependency> <!-- org.json --> <!--JSON is a light-weight, language independent, data interchange format. See http://www.JSON.org/ --> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20140107</version> </dependency>
3、引入百度编辑器的js文件
一般需要根据自己本地的情况修改一下后台配置文件和前台配置文件,主要是修改请求地址,图片保存路径这些。你可以打开这几个文件看看,里面都有注释很清楚。
4、文件都引入后,我们开始找修改文件保存的路径
从controller.jsp开始我们可以找到一个叫做exec()的方法,从这个方法一直追踪发现配置图片上传根路径的地方在ConfigManager.java 中的 getConfig()方法中,找到后修改如下:
说明:
实现思路如上图所示:把文件保存路径存在 .properties 配置文件中,然后在这ConfigManager.java里取出来,用配置的保存替代原来代码中的rootPath,这样就达到了我们自定义配置图片保存路径的目的了;等你亲自试验后你可能会问,为什么不直接修改,传入的根路径,这样不是更方便吗?
错了,我开始也是这样做的,但是显然rootPath不只是用来保存文件时候用的,读取配置文件的时候也是基于rootPath来读取的,如果直接改了传入的rootPath导致配置文件读取失败所以这是不行的。