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

在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

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

  1. ueditor1.4.3jsp版在上传图片报"未找到上传文件"解决方案

    这是因为struts2的过滤器,解决方法是自定义一个过滤器 新建一个过滤器的类,代码: package com.filter; import java.io.IOException; import j ...

  2. 关于ueditor 在struts2 中 上传图片 ,未找到上传文件 问题的解决方法

    问题原因: ueditor 上传图片需请求imageUp.jsp文件,struts2 自带的拦截器(/*)把所有请求的文件都做了处理,所以导致无法上传图片. 解决方法: 方法一:自定义拦截器,让它在请 ...

  3. python中使用multipart/form-data请求上传文件

    最近测试的接口是上传文件的接口,上传单个文件,我主要使用了2种方法~ 接口例如: URL: http://www.baidu.com/*** method:post 参数: { "salar ...

  4. 不使用ASP.NET中的服务器控件将如何上传文件?

    遇到文件的上传时,可能会有大部分的开发者喜欢使用服务器控件,虽然很方便,但是却不能很好的控制,不具灵活性. 现给出例子,使用html标签语言灵活的控制文件的上传. 1.html部分 <input ...

  5. 在MVC中利用uploadify插件实现上传文件的功能

    趁着近段的空闲时间,开发任务不是很重,就一直想把以前在仓促时间里所写的多文件上传功能改一下,在网上找了很多例子,觉得uploadify还可以,就想用它来试试.实现自己想要的功能.根据官网的开发文档,同 ...

  6. Ubuntu18.04中安装vsftpd服务/ ftp上传文件提示无权限 553 Could not create file.

    1,安装 $ sudo apt-get install vsftpd 2.配置 备份并创建新的配置文件. $ sudo mv /etc/vsftpd.conf /etc/vsftpd.conf_ori ...

  7. MFC中使用post提交form-data上传文件

    已经有将近6年时间没写过MFC了,想想以前我也是写VC++入门程序开发的,那时候写协议栈.搞语音编码.做视频压缩和实时数据传输,相比现在更多偏业务的开发,那时候搞得都是非常技术的东西.眨眼间,MFC已 ...

  8. Android中实现异步轮询上传文件

    前言 前段时间要求项目中需要实现一个刷卡考勤的功能,因为涉及到上传图片文件,为加快考勤的速度,封装了一个异步轮询上传文件的帮助类 效果  先上效果图 设计思路 数据库使用的框架是GreenDao,一个 ...

  9. web 中常用的两种上传文件的方法总结

    这里我们来总结整理一下常用的两种文件上传方式以及要注意的东西: 1.springmvc .MultipartFile 的上传方式. 2.org.apache.commons.fileupload 使用 ...

随机推荐

  1. [转]ASP.NET MVC IOC 之AutoFac攻略

    本文转自:http://www.cnblogs.com/WeiGe/p/3871451.html 一.为什么使用AutoFac? 之前介绍了Unity和Ninject两个IOC容器,但是发现园子里用A ...

  2. [转]TextArea设置MaxLength属性最大输入值的js代码

    标准的DHTML文档中TEXTAREA的MAXLENGTH属性默认情况下不起作用,只有当事件发生时才起作用 如下:http://spiderscript.net/site/spiderscript/e ...

  3. leetcode-Combinations 复习复习排列组合

    Combinations 题意: 根据给定的n和k,生成从1到n范围内长度为k的排列组合 示例: n=4 k=2 [[1, 2], [1, 3], [1, 4], [2, 1], [2, 3], [2 ...

  4. NYOJ-取石子

    (一) 描述一天,TT在寝室闲着无聊,和同寝的人玩起了取石子游戏,而由于条件有限,他/她们是用旺仔小馒头当作石子.游戏的规则是这样的.设有一堆石子,数量为N(1<=N<=1000000), ...

  5. Android中关于Handler的若干思考

    在之前的博文中,讲过一些和Handler有关的知识,例如: Android 多线程----AsyncTask异步任务详解 Android多线程----异步消息处理机制之Handler详解 今天再把Ha ...

  6. Flex4 vs Flex3: Repeater vs DataGroup

    repeaters太老土了!如果你过去使用过它,你会发出这种感概.现在,我们终于要摆脱它了.Repeaters不仅有沉重的组件,而且接合使用很不方便.那么,Flex 4中有什么可以帮助我们吗?Data ...

  7. luogu10125回文数[noip1999 Day1 T1]

    题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数 ...

  8. java 继承(下)

    1.抽象方法一定要写在抽象类中. 2.抽象类只在描述该事事务应该具备的东西. 3.抽象只能是抽象类和抽象方法. 4,抽象类没有任何抽象方法,这种类是不让创建对象. private  static

  9. php 中的curl

    ① curl上传文件 <?php $postData=array( 'name'=>'123', 'upload'=>'@E:/wamp/www/function/result.zi ...

  10. Centos下Apache使用Symlink访问外部目录出现403

    在Aapche 的document root 下创建软链到其他目录时, 无法从浏览器访问, 返回403错误. 主要检查两点: 1. 软链目标目录的每一级, 都要对所有人开放执行权限, 即对各级目录 c ...