百度编辑器是目前比较盛行的一个富文本编辑器,百度编辑器虽然好用,但是在一些场景下图片上传是一件很尴尬的事情。
根据官网文档的描述百度编辑器的图片上传只能保存在网站根目录下

百度编辑器文档截图

如果图片只能保存在根目录下这会带来许多问题,如果项目重新发布那就意味着图片也就覆盖了,这显然是我们不能接管的,而且如果我们的网站已经配置了nginx图片做事器或者其他图片做事器,它们都不在我们的网站根目录下我们该如何处理呢?

Jsp图片路径问题jsp设置装备摆设百度编纂器细节自界说图片保留路径 RESTful API

我在官网找了半天没有找到办理的办法,看来只能出大招了,自己改改源码吧,在源码中把图片的保存路径改成可以配置的路径这样就可以想怎么保存就怎么保存了。

修正百度编辑器文件保存根目录

我利用编辑器自带的java图片上传例子做解释,百度编辑器自带文件上传功能是通过一个jsp文件来完成的

1、首先下载百度编辑器的完全版源码

点击下载-> 1.4.4.3 源码地址

2、解压后把java后台源码导入到项目中

导入后包构造

当然导入前你得确保你的项目中已经加入了百度编辑器所依赖的一些jar包,这些jar包在

jsp/lib文件夹中,jar包列表如下

百度编辑器依赖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>

<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,这样就达到了我们自定义配置图片保存路径的目的了;等你亲自试验后你可能会问,为什么不直接修正,传入的根路径,这样不是更方便吗?

controller.jsp截图

错了,我开始也是这样做的,但是显然rootPath不但是用来保存文件时候用的,读取配置文件的时候也是基于rootPath来读取的,如果直接改了传入的rootPath导致配置文件读取失落败以是这是弗成的。