`
退役的龙弟弟
  • 浏览: 446119 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2实现文件过滤

 
阅读更多

一、手动实现文件过滤

1.uploadAction.java

 

//文件过滤属性,通过struts.xml文件配置allowtypes属性值
	private String allowtypes;
	
	
	public String getAllowtypes() {
		return allowtypes;
	}


	public void setAllowtypes(String allowtypes) {
		this.allowtypes = allowtypes;
	}

比较当前上传文件的格式和允许上传文件格式

//过滤文件

	public String filetypes(){
		
		String filetype=getUploadContentType();
		String[] types=getAllowtypes().split(",");
		for(String type:types){
			if(type.equals(filetype)){
				return "ok";
			}
		}
		return "error";
	}
	
	@Override
	public String execute() throws Exception {

		if(filetypes().equals("error")){
			this.addFieldError("uploadfileerror", "上传文件类型错误");
			return "error";
		}


 

2.struts.xml(在struts配置文件中allowTypes的属性值)

 

<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
	<constant name="struts.i18n.encoding" value="utf-8"/>
    <package name="parameter" namespace="/" extends="struts-default">

        <action name="upload1" class="com.ru.action.UploadAction">
        	<param name="savepath">/upload</param>
        	<!-- 文件上传格式 -->
        	<param name="allowtypes">image/gif,image/x-png,image/jpg,image/jpeg,application/vnd.openxmlformats-officedocument.wordprocessingml.document</param>
            <result name="sucess">/WEB-INF/jsp/sucess.jsp</result>
            <result name="error">/WEB-INF/jsp/error.jsp</result>
        </action>      
    </package>
</struts>

二、struts2提供的过滤机制

struts.xml

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
	<constant name="struts.i18n.encoding" value="utf-8"/>
    <package name="parameter" namespace="/" extends="struts-default">

        <action name="upload1" class="com.ru.action.UploadAction">
        	<param name="savepath">/upload</param>
        	
        	
        	
        	
        	<!-- Struts2提供的文件上传拦截器-->
        	<interceptor-ref name="fileUpload">
        	<!-- 允许上传的文件格式 -->
        		<param name="allowedTypes">image/gif,image/x-png,image/jpg,image/jpeg,application/vnd.openxmlformats-officedocument.wordprocessingml.document</param>
        	<!-- 附件大小 -->	
        		<param name="maximumSize">2000000</param>
        	</interceptor-ref>
        	<!-- 默认拦截器 -->
        	<interceptor-ref name="defaultStack"></interceptor-ref>
        	<!-- 配置struts2的默认视图文件必须是"input" -->
        	<result name="input">/WEB-INF/jsp/error.jsp</result>
        	
        	
        	
        	
            <result name="sucess">/WEB-INF/jsp/sucess.jsp</result>
            
        </action>      
    </package>
</struts>


分享到:
评论

相关推荐

    struts2 实现文件上传

    struts2 实现文件上传,手动对上传文件进行过滤,希望对大家有用 &lt;param name="allowTypes"&gt;application/octet-stream,application/pdf&lt;/param&gt; &lt;!-- 仅允许上传ppt,pdf格式的 --&gt;

    JAVA COS上传实例支持Struts2

    COS这个文件上传组件可以说在几个开源的上传文件组件中性能是非常优秀的,上传速度很快(相比fileUpload,smart等组件),但在使用Struts2结合COS文件上传时要注意Struts2实现了自己的MultiPartRequest,这个过滤后的...

    struts2流程与流程图

     FilterDispatcher是控制器的核心,就是MVC的Struts 2实现中控制层(Controller)的核心。  FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个(HttpServlet Request)请求,如果ActionMapper...

    基于struts2的用数组接受多个文件上传+过滤器

    基于struts2的用数组接受多个文件上传+过滤器 用数组接受的同时多文件上传

    基于struts2 的网络U盘

    数据库包括用户表和文件表,项目主体由Struts2框架搭建,前台jsp页面表单使用OGNL标签,XX_zh_CN(en_US).properties文件实现中英文国际化,XXAction-validation.xml实现表单校验,MD5加密文件绝对路径,保护文件安全...

    深入浅出Struts2(附源码)

    作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,如数据类型转换、文件上传和下载、提高Struts 2应用的安全性、调试与性能分析、FreeMarker、Velocity、Ajax,等等。跟随作者一道深入Struts 2,聆听...

    struts2+hibernate学习示例

    9、struts2的Action实现,其中用到了两种方法 (1)UserAction类是比较方便的方法,本系统就只用到了UserAction类 (2)AddUserAction、DeleteUserAction、ViewUserAction是另外一种实现,比较繁琐,可供参考 10、...

    struts文件的上传下载功能实现

    struts文件的上传下载功能实现,并利用过滤器解决了相应的中文乱码问题

    Struts2 入门培训

    4 1.3.2. 受控目录 5 2. 入门例子 5 2.1. 项目 5 2.2. 在WEB.XML中,配置FILTERDISPATCHER过滤器 6 2.3. 配置STRUTS.PROPERTIES 6 2.4. 编写一个简单的ACTION类 7 2.5. STRUTS.XML配置文件 8...

    AutoCode代码生成器(Struts1.2版)

    ★ Action、Form、struts-config.xml web.xml struts的处理核心类及配置文件 ★ JSP调用页面(全面支持struts1.2)(增、删、改、查),分页功能自动实现 (如果数据库是sqlserver,又需要分页的,请使用sqlserver2005)...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    如数据类型转换、文件上传和下载、Struts2应用的安全性、调试与性能分析、FreeMarker、Velocily、Ajax,等等。跟随作者一道深入Struts2。聆听大量来之不易的经验之谈。你对Struts2开发框架的理解和应用水平都将更上...

    使用UEditor实现富文本编辑图片上传附件上传实例

    1、内含两个文件:①、UEditorDemo.rar ②、UEdtior的简单使用.doc;...5、最后一点是提示:如果要把UEditor使用在struts中,要重写web.xml中所有过滤.jsp或者.*的过滤器,不然上传图片和文件会失败。

    (2.0版本)自己写的struts2+hibernate+spring实例

    主要是为了引入时间等字段,来试验一下struts2的时间标签是否好用.这次为了做成一个好点的实例.所以换掉了表结构.为歌词表.并附带2万首歌词的数据库.因为歌词插入数据太大.所以单另上传了.如果不需要这两万条数据的...

    Struts + JSP 电子书

    它为了使各个部分能够分离,提供相应的配置文件(struts-config.xml)进行请求和处理类的映射。整个类的映射完全来自java技术的类反射和相应的请求过滤技术。通过标记扩展来实现相应的视图和模型的联系。

    名为责任链或者拦截器或者过滤器的简单模拟

    比如说,struts2中Action在执行之前会首先执行一些Interceptor,完成诸如权限验证/属性注入/Validation/国际化等等的功能, 我看过一个比较好的功能是,利用strut2的拦截器和*-Validation.xml文件以及标签(strut2...

    毕设+基于协同过滤算法的电影推荐系统

    SSH(spring3+struts2+Hibernate3)开发框架,jsp页面 一、项目功能 前台用户包含:注册、登录、注销、浏览电影、搜索电影、信息修改、密码修改、电影评分、电影收藏、电影评论、个性化推荐电影等功能; 后台管理员...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    8.5.1 Struts2的配置文件类型 8.5.2 Struts2的包配置 8.5.3 名称空间配置 8.5.4 Action相关配置 8.5.5 通配符实现简化配置 8.5.6 返回结果的配置 8.6 Struts2的开发模式 8.6.1 实现与ServletAPI的交互 86.2 域模型...

    基于EXT SSI的简单树实现

    它进入web.xml,发现自己需要经历struts2这个过滤器,于是在这个过滤器里,应用把工作交给了struts,在struts配置中找到getDesc这个控制器, &lt;result name="xmlMessage" type="plaintext"&gt;&lt;/result&gt; 在struts...

Global site tag (gtag.js) - Google Analytics