使用UEditor进行图片上传的时候报错,说未找到上传数据。因为这个插件以前用过上传图片时没碰到问题,所以想着应该是项目问题,项目是SSH框架,百度了一下,说是被拦截了。
这个原解决方案的链接:https://my.oschina.net/jiangli0502/blog/210263,说的比较详细。我这里就记录一下我自己的处理过程,备忘。
1、新建自己的过滤器,并且不过滤UEditor的连接:
import java.io.IOException; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter; //自定义的struts2的过滤器 public class MyStrutsFilter extends StrutsPrepareAndExecuteFilter{ @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; String url = request.getRequestURI(); //System.out.println(url); if (url.contains("/KFCenter/news/ueditor/jsp")) {//ueditor的不拦截 //System.out.println("使用自定义过滤器"); chain.doFilter(req, res); }else{ //System.out.println("使用默认过滤器"); super.doFilter(req, res, chain); } } }
2、修改web.xml配置文件:使用自己的过滤器替换掉struts的(拦截的类型不用变,以前是什么样就是什么样,我这里的项目原本就过滤action和jsp)
<filter> <filter-name>struts2</filter-name> <!-- <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>--> <filter-class>com.tzj.KFCenter.action.MyStrutsFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping>
3、注意将所有的jar包都引入:UEditor的jsp版本有另外的jar包,一定不要忘记了。