Spring Boot整合UEditor,解决找不到上传文件的问题
2016-12-05 10:38
956 查看
在实践中如果贸然尝试使用Controller会导致上传文件失败,原因是因为Spring Boot的Request不能强转成为MultipartRequest,只能通过注解请求数据的键作为参数才能获得上传的文件。这里给一个最佳实践,可以不必大幅度修改Spring Boot的配置和UEditor源码,即可快速整合UEditor。
1、第一步,下载UEditor完整源码包,解压缩,把com.baidu.ueditor整个包的源码导入到工程中。
2、第二步,把UEditor的前端静态文件都放在网站的ueditor路径下。
3、第三步,在JSP源码路径中找到config.json,也复制到网站的ueditor路径下。
4、第四步,在项目中写如下的Sevlet类,它可以直接绕过Spring Boot的控制
5、第五步,修改com.baidu.ueditor下的ConfigManager类
将configFileName的值修改为"ueditor\\config.json"
6、第六步,修改网站路径下的ueditor/ueditor.config.js脚本
找到 , serverUrl: URL +
在后面的值中做修改,改为../UEditor,用来实现前端自动去访问接口的操作。
7、第七步,写一个Controller,打开一个页面,页面的HTML这样写:
8、完成,打开这个Controller的URL,UEditor即可映入眼帘,上传一张图片试试,如果能上传,说明整合成功。
其他说明:用Chrome浏览器时点击上传图片会有几秒钟的延时,原因不详,有待官方解决。
【关于有Tomcat运行时环境和Jetty运行时环境的区别设定】
感谢windlee09网友所提供的信息,经过实践观察,如果Spring Boot的运行方式是直接从main方法运行,那么需要在SpringBoot的Application类上加上@ServletComponentScan注解。如果采用的是maven clean package tomcat7:run,则无需添加该注解,Tomcat会负责搜索注解类。
1、第一步,下载UEditor完整源码包,解压缩,把com.baidu.ueditor整个包的源码导入到工程中。
2、第二步,把UEditor的前端静态文件都放在网站的ueditor路径下。
3、第三步,在JSP源码路径中找到config.json,也复制到网站的ueditor路径下。
4、第四步,在项目中写如下的Sevlet类,它可以直接绕过Spring Boot的控制
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.baidu.ueditor.ActionEnter; @WebServlet(name = "UEditorServlet", urlPatterns = "/UEditor") public class UEditorController extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding( "utf-8" ); response.setHeader("Content-Type" , "text/html"); PrintWriter out = response.getWriter(); ServletContext application=this.getServletContext(); String rootPath = application.getRealPath( "/" ); String action = request.getParameter("action"); String result = new ActionEnter( request, rootPath ).exec(); if( action!=null && (action.equals("listfile") || action.equals("listimage") ) ){ rootPath = rootPath.replace("\\", "/"); result = result.replaceAll(rootPath, "/"); } out.write( result ); } }
5、第五步,修改com.baidu.ueditor下的ConfigManager类
将configFileName的值修改为"ueditor\\config.json"
6、第六步,修改网站路径下的ueditor/ueditor.config.js脚本
找到 , serverUrl: URL +
在后面的值中做修改,改为../UEditor,用来实现前端自动去访问接口的操作。
7、第七步,写一个Controller,打开一个页面,页面的HTML这样写:
<script id="editor" type="text/plain" style="width:100%;height:300px"></script> </div> <script> $(document).ready(function (){ var ue = UE.getEditor('editor'); }) </script>
8、完成,打开这个Controller的URL,UEditor即可映入眼帘,上传一张图片试试,如果能上传,说明整合成功。
其他说明:用Chrome浏览器时点击上传图片会有几秒钟的延时,原因不详,有待官方解决。
【关于有Tomcat运行时环境和Jetty运行时环境的区别设定】
感谢windlee09网友所提供的信息,经过实践观察,如果Spring Boot的运行方式是直接从main方法运行,那么需要在SpringBoot的Application类上加上@ServletComponentScan注解。如果采用的是maven clean package tomcat7:run,则无需添加该注解,Tomcat会负责搜索注解类。
相关文章推荐
- 解决spring boot上传文件MultipartFile找不到,报错的问题
- Spring Boot——多文件上传大小超限问题解决
- spring-boot上传文件MultiPartFile获取不到文件问题解决
- spring-boot上传文件MultiPartFile获取不到文件问题解决
- 解决springboot MultipartFile文件上传遇到的问题
- springboot,feign上传超大文件,超时等问题解决方案
- 解决使用Spring Boot、Multipartfile上传文件路径错误问题
- 解决使用Spring Boot、Multipartfile上传文件路径错误问题
- 解决SpringBoot整合shiro之后无法加载静态资源文件问题
- Springboot 之 解决IDEA读取properties配置文件的中文乱码问题
- 关于Spring boot中读取属性配置文件出现中文乱码的问题的解决
- spring与hibernate整合时实体类映射文件找不到的问题
- 创建Spring-Mybatis web项目,解决IDEA下找不到XXXmapper.xml文件的问题
- tp3.2整合uploadify上传实现,解决上传中文TP文件上传保存错误问题
- Springboot 之 解决IDEA读取properties配置文件的中文乱码问题
- ueditor上传图片时目录创建失败的问题解决方法,不用那么麻烦,其实修改php/config.json这个配置文件里面的路径就行!!
- spring boot整合shiro引用配置文件配置是出现的问题
- SpringBoot项目打包后,找不到文件路径问题,处理方法
- intellij spring boot 添加热部署步骤及添加之后修改文件没有效果的问题解决
- Springboot 之 解决IDEA读取properties配置文件的中文乱码问题