ueditor富文本上传图片的时候报错"未找上传数据"
最近因为需求所以在ssh项目中使用了Ueditor富文本插件,但是在上传图片的时候总是提示“未找到上传数据”,之后百度了好久终于弄明白了。因为Ueditor在上传图片的时候会访问controller.jsp,去获取图片上传路径,但是我之前在项目的web.xml配置了struts拦截器为<url-pattern>/*</url-pattern>,所以这就导致了在上传图片时Ueditor被拦截器拦截掉,从而获取不到图片上传路径,自然也就会报错了。
现在知道错误原因了,接下来就要解决问题,目前想到的解决方法是两种,一种是修改web.xml拦截器配置,第二种是重写struts拦截器。下面逐一看一下解决过程
(1)修改web.xml拦截器配置
将原来配置的/*改为*.do和*.action.如下:
<!-- struts2配置start -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<!-- <url-pattern>/*</url-pattern> -->
<url-pattern>*.do</url-pattern>
<url-pattern>*.action</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
(2)重写struts拦截器
第一步:新建类RequestParseWrapper类,该类继承了JakartaMultiPartRequest,注意:该类中的parse(HttpServletRequest servletRequest, String saveDir)是一个空方法,但是必须保留
package com.ysysj.lhb.util;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest; public class RequestParseWrapper extends JakartaMultiPartRequest { @Override
public void parse(HttpServletRequest servletRequest, String saveDir) throws IOException { }
}
RequestParseWrapper类
第二步: 配置struts.xml,让struts使用我们自定义的拦截器
<bean class="com.ysysj.lhb.util.RequestParseWrapper" name="customRequestParser" type="org.apache.struts2.dispatcher.multipart.MultiPartRequest" scope="default" optional="true"/>
<constant name="struts.multipart.handler" value="customRequestParser"/>
注意:<bean>中的name名称是自定义的,<constant>中的value值必须和<bean>中的name值保持一致。
第三步: 创建UeditorFilter过滤器,来过滤Ueditor上传请求
package com.ysysj.lhb.util;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.dispatcher.StrutsRequestWrapper; public class UeditorFilter implements Filter { @Override
public void destroy() {
} @Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
String URL = httpServletRequest.getRequestURI();
if(URL.endsWith("controller.jsp")) {//过滤掉ueditor中的controller.jsp页面。如果项目中存在同名页面,这里最好使用controller.jsp的全路径
chain.doFilter(new StrutsRequestWrapper(httpServletRequest), response);
}else {
chain.doFilter(request, response);
}
} @Override
public void init(FilterConfig config) throws ServletException {
}
}
UeditorFilter 过滤器
第四步:在web.xml中配置我们自定义的过滤器,注意我们自定义的这个过滤器要放在struts2拦截器的前面
<filter>
<filter-name>ueditorFilter</filter-name>
<filter-class>com.ysysj.lhb.util.UeditorFilter</filter-class>
</filter>
<filter-mapping> <!--filter-mapping标签一定要配置到struts2拦截器的前面-->
<filter-name>uedirotFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
ueditor富文本上传图片的时候报错"未找上传数据"的更多相关文章
- 两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错
遇到了两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错 首先第一个: 在做一个用ajax图片上传的功能中,php报了这样一个错误:File upload error - u ...
- 前端vue-TinyMCE富文本编辑器表情插件报错解决
最近项目中需要使用文本编辑器,比较了下最终选择了TinyMCE这款富文本编辑器.我安装的是TinyMCE v5但是在使用表情插件的时候,表情一直都出不来,报错信息如下: Uncaught Syntax ...
- 百度UEditor富文本上传图片
项目中使用UEditor发现设置图片自定义保存路径会出现<请求后台配置项http错误,上传功能将不能正常使用!错误> /* 上传图片配置项 */ "imageActionName ...
- Oracle数据库启动报错,找不到数据文件(ORA-01157和ORA-01110)
数据库报了ORA-01157和ORA-01110错误,提示找不到一个数据文件. 1.启动数据库报错 在启动数据库过程中,报了ORA-01157和ORA-01110错误,提示找不到数据文件. SQL&g ...
- 关于Ueditor富文本编辑器的配置和使用心得
一.环境和项目架构 本文章只是为了便于我个人记录日常笔记,如有错误或缺陷,请指出,文章仅供参考,如有转载请附上本文章链接. 介绍:将Ueditor富文本提交的内容直接生成Html文件,传到后台直接保存 ...
- ueditor富文本编辑器——上传图片按钮卡顿,响应慢
最近负责将公司官网从静态网站改版成动态网站,方便公司推广营销人员修改增加文案,避免官网文案维护过于依赖技术人员.在做后台管理系统时用到了富文本编辑器Ueditor,因为公司有一个阿里云文件资源服务器, ...
- MVC 使用 Ueditor富文本编辑器
一.Ueditor 1.下载Ueditor富文本编辑器 官方下载地址: http://ueditor.baidu.com/website/download.html 建议下载开发版,此处我下载的是 . ...
- 前后端分离ueditor富文本编辑器的使用-Java版本
最近在写一个自己的后台管理系统(主要是写着玩的,用来熟悉后端java的知识,目前只是会简单的写点接口),想在项目中编写一个发布新闻文章的功能,想到了使用百度的ueditor富文本编辑器,网上找了很多j ...
- PHP Ueditor 富文本编辑器
2016年12月11日 08:46:59 星期日 百度的简版富文本编辑器umeditor很久没更新了 全功能版本的配置项跟umeditor还是有区别的, 这里说下ueditor怎么对接到项目中去, 主 ...
随机推荐
- 空的OnGUI也会有gc
一个空场景,添加如下代码: using System.Collections; using System.Collections.Generic; using UnityEngine; public ...
- 微信小程序开发填坑指南V1
近期用了一星期的时间,开发了一个小程序.小程序名称是:小特Jarvis,取自钢铁侠的管家. 后台采用C#编写,WebAPI接口.其实开发时间并不多,小程序本身提供的API,相比公众号的API来说,已经 ...
- springboot-multisource
项目中经常会出现需要同时连接两个数据源的情况,这里基于MyBatis来配置两个数据源,并演示如何切换不同的数据源. 通过自定义注解+AOP的方式,来简化这种数据源的切换操作. <properti ...
- Ubuntu下安装antlr-4.7.1
简介:antlr工具将语法文件转换成可以识别该语法文件所描述的语言的程序. 例如:给定一个识别json的语法,antlr工具将会根据该语法生成一个程序,该程序可以通过antlr运行库来识别输入的jso ...
- 并发编程基础之wait以及notify的用法
一:概念 线程通信中经常用到wait和notify,顾名思义,wait即让当前线程处于等待状态,notify通知锁对象 上的另一个线程被唤醒,这里的唤醒是指可以去争夺锁资源,nofityAll是唤醒该 ...
- [pig] pig 基础使用
1.pig运行模式 本地模式: pig -x local 直接访问本地磁盘 集群模式: pig 或者 pig -x mapreduce 2.pig latin 交互 帮助信息 help 上传本地文件 ...
- python使用requests发送application/x-www-form-urlencoded请求数据
def client_post_formurlencodeddata_requests(request_url,requestJSONdata): #功能说明:发送以form表单数据格式(它要求数据名 ...
- Web浏览器里的那些事
初衷: 大脑中一直存在误区:一个Web前端工作者只要完美实现产品所提需求,至于浏览器究竟是怎么工作或者其中间都经历了些什么事情,就不用刨根问底了.直到最近看见前端大神winter老师关于浏览器部分的系 ...
- poj 2074
哎怎么说,感觉现在处理平面上点线的题已经比较熟练了. 这题就离散化然后搞个前缀和就没了. 准备开始进一步的自闭了. 下面是disguss的一些样例... 其实是我自己写错了个地方,本来能1A的. #i ...
- itoa()函数
itoa()函数 itoa():char *itoa( int value, char *string,int radix); 原型说明: value:欲转换的数据.string:目标字符串的地址.r ...