`
wangyongxin_2011
  • 浏览: 8897 次
  • 性别: Icon_minigender_2
  • 来自: 厦门
社区版块
存档分类
最新评论

使用struts实现单文件上传

    博客分类:
  • java
阅读更多

 文件上传的功能在Struts2中也得到了非常好的封装,主要使用的是fileUpload上传组件。

我使用的开发工具是:MyEclipse8.5

           Web服务器:Tomcat6

          Struts版本: struts-2.2.1

           JDK版本:JDK1.6.0_21

           J2EE版本:Java EE5.0

新建一个webproject,将struts的jar包粘贴到WEB-INF下的lib下(搭建环境),只需这几个jar包就可以了:

       commons-fileupload-1.2.1.jar

       commons-io-1.3.2.jar

       commons-logging-1.0.4.jar

       freemarker-2.3.15.jar

       ognl-2.7.3.jar

       struts2-core-2.1.8.jar

       xwork-core-2.1.6.jar

其代码如下:

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page isELIgnored="false"%>
<%@ taglib uri="/struts-tags" prefix="s"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

	<body>
		<s:form action="aa.action" method="post" enctype="multipart/form-data">
		               <s:file name="uploadFile"></s:file>
			<br />
			<s:submit value="提交"></s:submit>
		</s:form>
	</body>
</html>

 配置文件

struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
	<package name="struts3.1" extends="struts-default">
		<action name="aa" class="controller.Register">

			<result name="register">/showregister.jsp</result>
			<result name="input">/index.jsp</result>

		</action>
	</package>
<constant name="struts.ui.theme" value="simple"></constant>
</struts>

 

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	
	
	
	<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>
	</filter-mapping>
	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 

struts.properties

#设置最大的上传文件的大小
struts.multipart.maxSize=2048000000
#设置最大的上传文件的临时目录
struts.multipart.saveDir=/tempUploadFile

 Register.java

package controller;

import java.io.File;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class Register extends ActionSupport {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public File getUploadFile() {
		return uploadFile;
	}

	public void setUploadFile(File uploadFile) {
		this.uploadFile = uploadFile;
	}



    private File uploadFile;//对应表单里的 name="uploadFile"
	private String uploadFileFileName;//必须是以类型为File的变量名后面加上FileName

	public String getUploadFileFileName() {
		return uploadFileFileName;
	}

	public void setUploadFileFileName(String uploadFileFileName) {
		this.uploadFileFileName = uploadFileFileName;
	}

	@Override
	public void validate() {

	}

	@SuppressWarnings("deprecation")
	public String execute() {

		try {
                //取得上传后文件要存放的路径
			String targetDirectory = ServletActionContext.getRequest().getRealPath(
					"/upload");//存储到apache项目发布目录上 
             String targetDirectory="D:\\a1/upload";//存储到项目文件夹里 
          //生成上传的File文件
			File file = new File(targetDirectory, uploadFileFileName);
              //复制File对象,从而实现上传文件
			FileUtils.copyFile(uploadFile, file);

		} catch (Exception e) {

			e.printStackTrace();
		}

		return "register";

	}

}

 

showregister.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

 <body>
  上传成功!
 </body>
</html>

 

分享到:
评论

相关推荐

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

    总结起来,使用Struts实现文件上传下载涉及前端表单设计、后端处理逻辑、文件存储策略以及安全控制等多个方面。在实践中,我们还需要考虑到性能优化和用户体验提升,例如使用异步上传、进度条展示等技术。

    struts2实现文件上传下载

    Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。

    Struts2实现单个文件多个文件上传与下载-多个拦截器

    要实现文件上传,你需要在Action类中定义一个字段,类型为`java.io.File`或`org.apache.struts2.dispatcher.multipart.FileItem`,并添加对应的`@FileUpload`注解。例如: ```java public class FileUploadAction ...

    struts与hibernate实现文件的上传与动态下载

    本篇文章将详细讲解如何利用Struts2.2和Hibernate3.6实现文件的上传与动态下载。 **一、文件上传** 1. **环境配置**:首先,你需要一个集成开发环境,例如MyEclipse8.6,并安装所需的Struts2.21、JUnit4.8.2以及...

    struts1实现文件上传

    ### Struts1 实现文件上传的关键技术点 在Struts1框架中实现文件上传功能是一项常见但又具有一定技术挑战的任务。下面将详细解析文件上传的实现过程,包括关键类的使用、文件处理逻辑以及异常处理等方面。 #### ...

    JavaEE Struts文件上传

    通过分析这些文件,你可以看到一个完整的Struts2文件上传应用的结构和实现细节。 学习Struts2文件上传不仅需要掌握上述概念和技术,还需要了解文件安全性、异常处理和服务器配置等相关知识。在实际应用中,确保文件...

    struts2实现多文件上传下载

    网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供刚上传的文件下载功能(其他的都可以在其上面进行扩充) 多文件 上传 下载...

    Struts2实现文件上传

    在这个“Struts2实现文件上传”的主题中,我们将深入探讨如何利用Struts2框架来实现在Web应用中的文件上传功能。 首先,我们注意到一个细节描述:“private String uploadContextType;应更正为private String ...

    struts2 实现文件批量上传

    本项目实现了使用Struts2进行文件批量上传的功能,这涉及到几个关键的技术点,包括文件上传组件的选择、前端表单设计、后端处理逻辑以及存储策略。 1. **文件上传组件**:在Struts2中,我们通常使用`Commons ...

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

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

    struts 文件上传 Struts实现文件上传

    下面将详细介绍Struts 实现文件上传的相关知识点。 ### 1. Struts 框架概述 Struts 是Apache软件基金会下的一个开源项目,其主要目标是提供一个可扩展且易于维护的架构,用于构建企业级的Java Web应用。它通过分离...

    struts实现多文件上传1.txt

    Struts框架作为Java Web开发中非常成熟的一个MVC框架,支持多种方式实现文件上传功能。本文将详细介绍如何利用Struts框架实现多文件上传。 #### 二、Struts框架简介 Struts是一个开源的Java Web应用框架,基于MVC...

    Struts1实现的文件上传

    在这个“Struts1实现的文件上传”项目中,我们将深入探讨如何在Struts1框架下实现文件上传功能,并不涉及文件下载的部分。 首先,理解文件上传的基本流程是至关重要的。在Web应用中,用户通过HTML表单选择本地文件...

    Struts1实现文件上传源码

    在这个“Struts1实现文件上传源码”实例中,我们将深入探讨如何利用Struts1框架来处理文件上传操作。 在Web应用中,文件上传功能是非常常见的,比如用户上传头像、提交文档等。Struts1提供了ActionForm类和一系列...

    Struts2实现文件的上传下载

    在Struts2中,文件上传主要依赖于`org.apache.struts2.components.FileUpload`组件,这个组件是基于Commons FileUpload库实现的,它能够处理multipart/form-data类型的HTTP请求,这是文件上传所必需的格式。...

    swfuplaod+struts2实现多文件上传

    在实现文件上传时,必须注意以下安全问题: 1. **文件类型检查**:限制上传的文件类型,防止恶意用户上传可执行文件或脚本。 2. **文件名重命名**:避免文件覆盖或路径遍历攻击,对上传的文件名进行重命名。 3. **...

    struts2 单文件,多文件上传及拦截器实现异常处理

    在这个主题中,我们将深入探讨Struts2如何实现单文件和多文件上传,并通过拦截器来处理可能出现的异常。 首先,我们来看单文件上传。在Struts2中,使用`&lt;s:file&gt;`标签可以创建一个用于选择文件的输入字段。用户选择...

    Struts2实现文件上传功能

    下面将详细阐述如何使用Struts2来实现文件上传功能。 1. **Struts2文件上传组件** Struts2框架集成了一个名为`struts2-convention-plugin`的插件,它提供了文件上传的支持。主要依赖于`Commons FileUpload`和`...

    Struts实现文件上传、下载(导入直接运行)

    在Struts配置文件(struts-config.xml)中,我们需要定义一个处理文件上传的Action,这个Action通常会包含处理文件的业务逻辑。Struts的FileItem接口和 DiskFileUpload 类是关键,它们允许我们从请求中获取并处理...

    struts实现文件上传和下载源代码

    在这个"struts实现文件上传和下载源代码"项目中,我们将会探讨如何使用Struts框架来实现在Web应用中进行文件的上传和下载功能,同时还会关注对于大文件(超过3MB)的处理策略。 1. **文件上传** 文件上传是Web应用...

Global site tag (gtag.js) - Google Analytics