jsp版ueditor图片在线管理返回绝对路径

时间:2023-03-09 17:59:05
jsp版ueditor图片在线管理返回绝对路径

引用:http://zhengyunfei.iteye.com/blog/2149979

如果你有富文本编辑器的功能需要开发,我推荐你用百度的ueditor。本文将与你分享jsp版ueditor开发中遇到的一些问题。此次要说的版本是ueditor1_4_3-utf8-jsp,lib版本是ueditor1.1.1.jar。

先附上ueditor源码和已经改过bug的jar包,急着用的就别看我废话了:

第一:ueditor图片在线管理返回绝对路径,本来图片已经成功上传了,但是在线管理时却返回里绝对路径,如(D:\project\shuoit\xx.jpg)。自己研究了半天,开始以为是 config.json 配置的问题,最后才发现是jar包的bug....在这里我想说,百度你作为互联网老大,提供这么优秀的工具,竟然这种低智商错误,太遗憾了,如图:

jsp版ueditor图片在线管理返回绝对路径
 原来的函数,你可以用反编译工具看看,我们改成如图配置就好了,打包运行,就没问题了,如下图:

jsp版ueditor图片在线管理返回绝对路径
 第二:如果你的commons-io-2.4.jar太旧,比如我的以前是1.XX版,则上传图片又会报错,这是个小问题,删掉多余的jar包就好;

第三:这个问题相当蛋疼,是关于struts2的,如果你的项目采用的struts2,你就要注意,你的文件上传不鸟,很大可能是struts2内置的上传过滤功能给你拦截了,解决方式是,自定义拦截器,如下代码:

  1. /**
  2. * 自己定义struts过滤器,指定不对ueditor/jsp/目录下的jsp页面进行过滤
  3. * @author zhengyunfei
  4. */
  5. public class DiyStrutsFilter extends StrutsPrepareAndExecuteFilter{
  6. @Override
  7. public void doFilter(ServletRequest req, ServletResponse res,
  8. FilterChain chain) throws IOException, ServletException {
  9. HttpServletRequest request = (HttpServletRequest) req;
  10. String url = request.getRequestURI();
  11. if (url.contains("/ueditor/jsp/")) {
  12. System.out.println("+++++++++++>> 使用自定义过滤器");
  13. System.out.println("++++++++++++++++++++"+url+"++++++++++++++++++");
  14. chain.doFilter(req, res);
  15. }else{
  16. super.doFilter(req, res, chain);
  17. }
  18. }
  19. }
  20. web.xml配置如下:
  21. <!-- 自定义struts2过滤器,避免struts2内置模块影响上传功能 -->
  22. <filter>
  23. <filter-name>struts2</filter-name>
  24. <filter-class>net.shuoit.javaweb.filter.DiyStrutsFilter</filter-class>
  25. </filter>
  26. <filter-mapping>
  27. <filter-name>struts2</filter-name>
  28. <url-pattern>/*</url-pattern>
  29. </filter-mapping>

以上是我使用过程中遇到的问题,欢迎与我交流。