我在上一篇文章中,简单描述了截屏的集成,这篇文章记录集成过程中出现了问题以及解决方法
1. 发现提示“服务器返回数据有误,请检查配置项之后重试”
方法:a. jar没有全部导入,最重要的是ueditor-1.1.1.jar 其他的 jar因为很有可能原来已经引用过
b. 查看ueditor / jsp / config.json文件配置,如下
/* 截图工具上传 */
"snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */
"snapscreenPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"snapscreenUrlPrefix": "", /* 图片访问路径前缀 */
"snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */
2. 发现提示 “未找到上传数据”,那么 就是截图上传图片被拦截了..
解决方法: 自定义一个拦截器
package com.zte.filter.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;
/***
* 自定义拦截器,防止ueditor的上传操作被Struts2的默认拦截器给拦截
* @author Administrator
*
*/
public class UEditorStrutsFilter extends StrutsPrepareAndExecuteFilter {
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("/jsp/")) {
// System.out.println("使用自定义过滤器");
chain.doFilter(req, res);
} else {
// System.out.println("使用默认过滤器");
super.doFilter(req, res, chain);
}
}
}
相关的web.xml也需要更改下
<filter>
<filter-name>struts2</filter-name>
<!-- 使用ueditor 需要把ueditor的上传文件不被过滤掉 -->
<filter-class>com.zte.filter.ueditor.UEditorStrutsFilter</filter-class>
<!--
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
-->
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>