推薦解決方案,
重寫struts的StrutsPrepareAndExecuteFilter
- 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;
- /**
- *
- * 解決圖片上傳bug的struts過濾器
- *
- */
- public class MyStruts2Filter extends StrutsPrepareAndExecuteFilter{
- @Override
- public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain chain) throws IOException, ServletException {
- HttpServletRequest request = (HttpServletRequest) arg0;
- String uri = request.getRequestURI();
- if(uri.endsWith("/ckfinder/core/connector/java/connector.java")){//其他在線編輯器也可能存在此情況,依此方法解決
- chain.doFilter(arg0, arg1);
- }else{
- super.doFilter(arg0, arg1, chain);
- }
- }
- }
對應在web.xml中修改
- <filter>
- <filter-name>struts2</filter-name>
- <!-- <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>-->
- <filter-class>MyStruts2Filter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>