`
退役的龙弟弟
  • 浏览: 453738 次
  • 性别: 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环境中实现几个关键功能:自定义过滤器、文件上传下载以及用户登录功能。这些功能是任何Web应用程序的基础组成部分,理解和掌握它们对于提升Web开发技能至关重要。 首先,我们来探讨...

    Struts2 上传文件(带过滤文件类型和大小)

    总结,Struts2提供了方便的文件上传功能,但需要注意过滤文件类型和大小以确保系统安全和性能。通过配置、校验和处理逻辑,我们可以实现一个完整的文件上传功能,同时确保上传的文件既符合格式要求,又不超过设定的...

    基于struts2的文件上传+过滤器

    本篇文章将详细介绍如何在Struts2中实现文件上传功能以及使用过滤器进行文件类型的过滤。 首先,理解Struts2文件上传的基本原理。Struts2提供了`org.apache.struts2.interceptor.FileUploadInterceptor`拦截器来...

    struts2配置过滤器

    通过以上分析可以看出,在Struts2项目中配置过滤器是一种非常实用的方法,可以有效地实现对用户请求的预处理工作。需要注意的是,在实际应用中还应考虑更多细节问题,比如如何处理不同环境下的配置差异、如何更灵活...

    使用Struts2实现文件上传和下载的所有方案

    在本文中,我们将深入探讨使用Struts2实现文件上传和下载的各种方案。 ### 文件上传方案 #### 1. 使用Struts2进行文件普通上传 文件上传的核心是处理`multipart/form-data`类型的表单数据。Struts2通过`Struts2-...

    struts2中文件上传过滤codeFilter

    在Struts2框架中,文件上传是一个常见的功能,它允许用户通过Web应用程序上传文件到服务器。`codeFilter`在此上下文中通常是指一个自定义过滤器,用于在文件上传过程中进行额外的安全检查或处理。这个过滤器可以防止...

    Struts2 拦截器过滤方法(二十八)

    在"Struts2 拦截器过滤方法(二十八)"这个主题中,我们将深入探讨Struts2拦截器的工作原理、如何创建自定义拦截器以及它们在实际应用中的作用。 首先,拦截器是基于Java的动态代理机制实现的,它们在Action执行...

    ·Struts2配置文件介绍 超级详细

    Struts2提供了一系列内置的拦截器,如`validation`、`propertypopulation`、`security`等,这些拦截器通常通过定义在`struts-default.xml`中的拦截器堆栈来实现。 - **Action**:Action是Struts2框架中最核心的部分...

    struts2解析文件

    - 请求被Struts2的过滤器(StrutsPrepareAndExecuteFilter)捕获。 - 根据struts.xml配置文件,Struts2确定哪个Action应该处理请求。 - Action被实例化,如果使用了ModelDriven,那么模型对象也会被放入ValueStack。...

    struts2实现留言板

    总结起来,这个"struts2实现留言板"的项目涵盖了Struts2框架的基本使用,包括Action设计、配置文件、结果类型、视图展示、数据模型、安全性以及国际化等多个方面。通过实践这个项目,开发者可以深入理解Struts2的...

    struts2 实现文件上传

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

    Struts2实现Uploadify多文件上传

    Uploadify是一款JavaScript插件,它允许用户通过Flash或HTML5技术实现文件的多选、上传,并且可以显示上传进度条,提升用户体验。在Struts2框架下实现Uploadify多文件上传,我们需要考虑以下几个关键知识点: 1. **...

    在Struts 2中实现文件上传

    ### 在Struts 2中实现文件上传的知识点详解 #### 实现原理 在Struts 2框架中,文件上传功能的实现主要依赖于`CommonsFileUpload`组件。`CommonsFileUpload`通过将HTTP请求中的数据部分保存到服务器端的临时文件夹...

    struts2_uploadify带进度条的多文件上传下载

    Struts2 Uploadify是一个在Java Web开发中常用的插件,它结合了Struts2框架和Uploadify jQuery插件,能够实现文件的多选、上传进度显示以及后台处理等功能。这个项目示例提供了一个完整的解决方案,使得用户在上传多...

    Struts2拦截器实现权限控制demo

    在Struts2中,拦截器是实现业务逻辑控制和增强功能的重要机制,它们扮演着类似于AOP(面向切面编程)的角色,允许在动作执行前后插入自定义逻辑。在这个“Struts2拦截器实现权限控制demo”中,我们将深入探讨如何...

    struts2文件上传的两种方法

    以上就是Struts2中单文件和多文件上传的基本实现方式及相关知识点。通过这种方式,开发者能够方便地处理用户上传的文件,实现Web应用的各种功能。记得在实际开发中根据项目需求进行相应的优化和安全控制。

    Struts2实现上传功能源码

    在本案例中,我们关注的是如何使用Struts2实现文件上传的功能,这在许多Web应用中都是一个常见的需求,比如用户上传头像、提交文档等。 首先,理解上传功能的基本原理。在HTTP协议中,文件上传通常通过表单的POST...

    Struts2包和配置文件

    在你提供的压缩包中,可能包含了Struts2框架的所有核心组件、依赖库和必要的配置文件,这些都是构建基于Struts2的应用所必需的。 首先,我们来看一下Struts2的核心组件: 1. **Action类**:这是业务逻辑的载体,...

    简单易懂的struts2文件上传

    本教程将深入浅出地讲解如何在Struts2中实现文件上传,并提供一个简单的实例来帮助理解。 1. **Struts2文件上传概述** 在Struts2中,文件上传主要依赖于Apache的Commons FileUpload库。这个库提供了处理HTTP多部分...

    struts2实现用户登录

    1. **配置Struts2**:在项目中集成Struts2,需要在web.xml文件中配置Struts2的核心过滤器`org.apache.struts2.dispatcher.FilterDispatcher`或更现代的`org.apache.struts2.dispatcher filt er....

Global site tag (gtag.js) - Google Analytics