文档章节

ueditor1.3.6jsp版在struts2应用中上传图片报"未找到上传文件"解决方案

Jialy
 Jialy
发布于 2014/03/21 12:28
字数 671
阅读 20474
收藏 8
点赞 6
评论 16

在struts2应用中使用ueditor富文本编辑器上传图片或者附件时,即使配置好了上传路径信息,也会出现"未找到上传文件"的错误提示,出先该问题的原因是:在配置struts过滤器,过滤路径设置/*方式时,由于struts2框架默认使用apache的Commons FileUpload组件和内建的FileUploadInterceptor拦截器实现上传,会将request文件域封装到action中一个File类型的属性中,并删除request中的文件域,因此会上传文件失败。

在这里先说下ueditor1.3.6 jsp版文件上传的相关配置。

Ueditor的目录结构

首页我们要在ueditor.config.js文件中配置ueditor的基本相对路径


接下来看看图片上传的配置

我们可以看出图片上传是通过ueditor根目录下jsp目录下的imageUp.jap完成的。savePath为文件保存目录列表

会在下图中用到

对应的会在jsp目录下创建upload目录用于保存上传的图片

最后我们打开imageUp.jsp页面,会看到该页面用到Uploader.java类,所以我们需要类路径下创建一个ueditor包并将Uploader.java类拷贝进去



完成以上配置,当我们上传文件时,就会出现“未找到上传文件”的提示。

解决方案:

1.更改struts配置/*为*.xx的方式。(由于项目原因,该方式本人未亲试,若有读者实验过,请留言告知,谢谢

2.自己写一个action代替原有的imageUp.jsp页面(貌似该方案比较麻烦

3.自己定义一个struts过滤器,指定不对ueditor/jsp/目录下的jsp页面进行过滤。(该方案相对上一种就比较简单

过滤器代码如下:

package com.jl.filter;

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;

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("/meeting/ueditor/jsp/")) {             
			System.out.println("使用自定义过滤器");             
			chain.doFilter(req, res);         
		}else{             
			System.out.println("使用默认过滤器");             
			super.doFilter(req, res, chain);         
		} 
	}
}



修改struts配置如下:
<!-- 配置struts过滤器 -->
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>com.jl.filter.MyStrutsFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>



到此重启项目,再进行上传操作就不会再出错了哦!^_^

最后,希望大家转载请注明出处,尊重别人的劳动成果http://my.oschina.net/jiangli0502/blog/210263



参考资料:http://www.010cnc.net/subject/about/UEditor%20與Struts2%20結合下傳有關問題解決.html

© 著作权归作者所有

共有 人打赏支持
Jialy
粉丝 23
博文 31
码字总数 19281
作品 0
浦东
程序员
加载中

评论(16)

吴悠1977
解决方案一可以通过
Jialy
Jialy

引用来自“FreakCiao”的评论

本身用的就是*action方式,还是出现了这种问题
那可能方案1不行吧,重点是struts拦截器清空了request中文件域
FreakCiao
FreakCiao
IO错误有人遇到过么.... 怎么解决
FreakCiao
FreakCiao
本身用的就是*action方式,还是出现了这种问题
genericyzh
genericyzh
楼主的意思是吧web.xml中原来的org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter覆盖掉?如果这样设置,那么其他页面有一个form上传一个文件,也上传不了了吧
wms1
wms1
文件上传其实和框架没有很大关系,重点是request不要被不相关的框架处理,建议使用servlet3.1规范,实现一两行代码解决上传问题。spring mvc文件上传处理也很简单
周天子z
周天子z

引用来自“枫亭”的评论

感觉楼主分享,困惑了很久的问题,终于解决了。
我现在用的是1.4.3 jsp版的,用解决方案三可以解决。
1.4.3 jsp版和之前的有很多不同,怎么解决的啊?我试了不行,用ssh框架的
SSAAA
SSAAA
感觉楼主分享,困惑了很久的问题,终于解决了。
我现在用的是1.4.3 jsp版的,用解决方案三可以解决。
Yung.breather
Yung.breather
博主牛人,拜服中
Jialy
Jialy

引用来自“彭浩it”的评论

碰巧解决了问题吧
No,如果用的kindeditor,一样可以这样解决。
3.6 Struts2上传文件

3.6.1上传单个文件 Struts2的文件上传默认使用的是Jakarta的Common-FileUpload文件上传框架。因此需要增加两个Jar包,即:common-io-1.4.jar和commons-fileupload-1.2.1.jar。 下面举例实现文...

JerryPan ⋅ 2016/02/24 ⋅ 0

Kindeditor 上传功能

Kindeditor支撑java,供给的示例法度由jsp充当文件经管和上传,以前应用好好的,但此次应用的struts2,而struts过滤器包装了request,对就因为这点, kindeditor不克不及应用了。在kindedito...

i33 ⋅ 2012/02/15 ⋅ 0

Fastupload 0.4.7 发布,支持 struts2

Fastupload 0.4.7这个版本中主要增加了支持struts2的文件上传功能的“插件”,修复了解析IE7,IE8下某些版本上传的请求数据中文件名问题(这里感谢lkclkc 网友报的bug及提供的解决思路)。 ...

仪山湖 ⋅ 2012/10/28 ⋅ 1

rz和sz安装简洁版(42)

1.下载安装包: url:http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz 2.解压安装包: tar -zxvf lrzsz-0.12.20.tar.gz 3.编译安装: cd lrzsz-0.12.20 运行:./configure 遇到问题1: conf......

肖鋭 ⋅ 2014/05/21 ⋅ 0

Struts2文件的上传和下载

文件上传的原理: 表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值: 1) application/x-www-form-urlencoded:这是默认编码方式,它只处理表单域里的value属性值,采用这种...

倚小丁 ⋅ 2010/11/01 ⋅ 3

将百度UEditor集成进SSH2项目中

1、为了让Struts2不拦截编辑器的文件上传,将filter改为拦截*.action 2、当然是到复制UE-jsp版的几个文件夹和JS文件进项目Web根目录下,将UE提供的几个jar包复制进lib目录并删除重复jar包 页...

Harmel ⋅ 2015/08/07 ⋅ 0

struts2 上传 下载

东方部落: http://11144439.blog.51cto.com struts中上传文件功能小测试。这里jar是 2.5 版本。 项目结构图 废话不多说,直接代码。 2. web.xml配置...

东方部落 ⋅ 2017/05/24 ⋅ 0

【转】jquery文件上传插件uploadify在.NET中session丢失的解决方案

基于jQuery和Flash的多文件上传插件uploadify的确很好用,具体配置和使用方法见以前的一篇文章:《一款基于jQuery的文件上传插件(.NET版)》。但今天在用这个插件的时候遇到了一个非常头痛的问...

酱哥哥 ⋅ 2012/06/07 ⋅ 0

关于KindEditor组件上传本地图片报服务器异常的错误

今天突然间接到一个异常信息的问题,说系统的在线文本编辑器里上传本地图片报服务器异常的错误信息,开始我用firebug调试,发现前台不报错,然后我去服务器日志里找,也没看到相关信息。看网...

f1024557668 ⋅ 2014/09/02 ⋅ 0

使用struts2在页面局部位置上传文件,不影响其他文本框数据

这个问题主要源于实验室项目的开发需求的变化。之前的需求只是简单的进行一系列数据的输入和选择,然后提交数据,所以之前一直使用jQuery的ajax的方式进行数据提交,在url中直接传递过去拼接...

yeyuhuayue ⋅ 2013/10/07 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java软件工程师简历中项目经验怎么写?

作者:暗灭 链接:https://www.zhihu.com/question/20695310/answer/180691302 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 直接给你贴个我自己的简历...

颖伙虫 ⋅ 25分钟前 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部