关于百度UEditor在ssh图片上传被拦截

UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于BSD协议,允许自由使用和修改代码。

UEditor比起其他的富文本编辑器来说,功能更加强大,界面的亲和力更加好。但是在一些新手在使用的过程中很容易出现问题。其中出现最多的可能就是关于路径的配置问题。

由于Struts2默认使用Apache的Commons FileUpload组件和内建的FileUploadInterceptor拦截器实现文件上传,它会将request中的文件域封装到action中的一个File类型的属性中,并删除request中的原有文件域,因此直接使用UEditor的controller.jsp上传文件会失败。

解决问题的方法有很多

1)可以自定义一个拦截器栈,去掉默认的FileUpload拦截器;

2)配置struts2不对jsp文件进行过滤。

3)使用的方法自定义一个过滤器,单独指定不对controller.jsp进行过滤。这种方法最简单,而且对项目影响较小。

项目的部分结构如下:


A、创建拦截器类

[java]  view plain copy
  1. package com.forum.filter;  
  2.   
  3. import javax.servlet.FilterChain;    
  4. import javax.servlet.ServletRequest;    
  5. import javax.servlet.ServletResponse;    
  6. import javax.servlet.http.HttpServletRequest;    
  7.     
  8. import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;    
  9.     
  10. public class UEditorFilter extends StrutsPrepareAndExecuteFilter{    
  11.     
  12.     public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) {    
  13.         HttpServletRequest request = (HttpServletRequest) req;    
  14.         String url = request.getRequestURI();    
  15.         try{    
  16.             if ("imageUp.jsp".equals(url.substring(url.length()-11))) {    
  17.                 chain.doFilter(req, res);    
  18.             } else {    
  19.                 super.doFilter(req, res, chain);    
  20.             }    
  21.         }catch(Exception e){    
  22.             e.printStackTrace();    
  23.         }    
  24.     }    
  25.  }    

B、配置拦截器在web.xml中将struts2的过滤器修改为以下代码:

[html]  view plain copy
  1. <!-- UEditor -->  
  2.     <filter>  
  3.         <filter-name>UEditor</filter-name>  
  4.         <filter-class>com.forum.filter.UEditorFilter</filter-class>  
  5.     </filter>  
  6.     <filter-mapping>  
  7.         <filter-name>UEditor</filter-name>  
  8.         <url-pattern>/*</url-pattern>  
  9.     </filter-mapping>  

注意:如果想把图片的保存位置设置为笔者的类似位置,需要

在config.json文件中修改imagePathFormat



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值