`
345161974
  • 浏览: 60439 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts2中多文件上传

阅读更多
文件上传大体我给分这么几步。1:在WEB-INF/lib下面添加commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,这两个文件全部在Struts2提供的lib包下面;2:在文件上传的表单处做设置,将form表单的enctype设置成为:“multipart/form-data”,提交方式设置为post;3:做Action。

具体代码如下:

fileupload.jsp



<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
${pageContext.request.contextPath}<br />
<form action="${pageContext.request.contextPath }/fileupload" enctype="multipart/form-data" method="post">
选择资源1:<input type="file" name="image"><BR />
选择资源2:<input type="file" name="image"><BR />
<input type="submit" value="上传"/>
</form>
</body>
</html>

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

<struts>
	<package name="yuan" extends="struts-default">
		<action name="fileupload" class="com.ambow.Action.FileUploadAction">
			<result>
				/WEB-INF/page/message.jsp
			</result>
		</action>
	</package>
</struts>


FileUploadAction.java
package com.ambow.Action;

import java.io.File;

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

import com.opensymphony.xwork2.ActionSupport;

public class FileUploadAction extends ActionSupport {

	//这里是固定的写法,文件名子必须跟上一个表单的name属性名字相同,都是image
	private File[] image ;
	private String[] imageFileName ;
	
	
	
	public File[] getImage() {
		return image;
	}

	public void setImage(File[] image) {
		this.image = image;
	}

	public String[] getImageFileName() {
		return imageFileName;
	}

	public void setImageFileName(String[] imageFileName) {
		this.imageFileName = imageFileName;
	}

	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		//得到当前工程的目录,然后自己再定义下保存的路径
		String realpath = ServletActionContext.getServletContext().getRealPath("/file") ;
		//打印路径看是否存在
		System.out.println(realpath);
		if(image != null){
			File savedir = new File(realpath) ;
			if(!savedir.exists()){
				savedir.mkdirs() ;
			}
			for(int i=0;i<image.length;i++){
				File savefile = new File(savedir,imageFileName[i]) ;
				FileUtils.copyFile(image[i], savefile) ;
			}
		}
		ServletActionContext.getServletContext().setAttribute("message", "文件上传成功!") ;
		return SUCCESS;
	}

	
}


message.jsp



<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
${message }
</body>
</html>

几点注意事项:在Action中的属性,比如image,都必须跟表单当中的属性值一样,都是image,还有属性的名字都必须按照固定的格式写,如image,imageFileName,如果不这么写,会报错的。
  • 大小: 37.7 KB
  • 大小: 32.4 KB
7
1
分享到:
评论
4 楼 xici_magic 2010-02-25  
原来是传智的
3 楼 yuantong 2010-02-24  
FF搞那么卡哇伊啊
2 楼 345161974 2010-02-22  
zhangzi 写道
跟着黎活明做的?我也正在看

啊,是的,跟着黎活明刚学习的,顺便自己总结了下
1 楼 zhangzi 2010-02-19  
跟着黎活明做的?我也正在看

相关推荐

    Struts2中多文件上传.doc

    ### Struts2中多文件上传知识点详解 #### 一、Struts2框架简介 Struts2是Apache Struts的一个更新版本,它是一个用于构建企业级Java Web应用的强大框架。Struts2采用MVC(Model-View-Controller)设计模式,能够...

    Struts2多个文件上传

    在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...

    struts2实现多文件上传下载

    文件上传比较多,多文件上传少一点 文件下载很少的,看似简单,实则不然 网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供...

    struts2实现多文件上传功能

    Struts2提供了完善的文件上传支持,让我们来详细探讨如何在Struts2中实现多文件上传。 首先,我们需要在Struts2的配置文件(struts.xml)中启用文件上传的支持。这通常涉及到添加`&lt;constant&gt;`标签来设置`struts....

    swfuplaod+struts2实现多文件上传

    下面将详细介绍如何利用SWFUpload与Struts2来实现多文件上传。 **一、SWFUpload组件介绍** SWFUpload 是一个JavaScript库,它利用Flash技术提供了一个高级的文件上传体验。它的主要特性包括: 1. **多文件选择**...

    在Struts 2中实现文件上传

    在 Struts 2 中实现文件上传,首先需要在 JSP 页面创建一个支持多部分数据的表单。例如,在 `FileUpload.jsp` 文件中,表单的 `method` 应设置为 `POST`,`enctype` 应设置为 `multipart/form-data`。此外,使用 `...

    struts2框架下的文件上传

    在Struts2中,文件上传是一个常见的需求,可以帮助用户从客户端上传文件到服务器。本文将详细讲解Struts2框架下三种不同的文件上传方式:copy模式、字节流上传和字符流上传。 1. Copy模式文件上传: Copy模式是...

    struts2实现文件上传下载

    首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在Action类中声明一个`List&lt;FileInfo&gt;`类型的字段,用于接收上传的文件...

    struts2多文件的上传

    在Struts2中,文件上传是常见的功能之一,尤其在处理用户提交的表单数据时,如上传图片、文档等。在本项目中,"struts2多文件的上传"实现了用户一次性上传多个文件的能力。 要理解这个功能,首先我们需要了解Struts...

    struts2文件上传下载源代码

    在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...

    struts2 实现文件批量上传

    1. **文件上传组件**:在Struts2中,我们通常使用`Commons FileUpload`库来处理文件上传。这个库提供了处理多部分HTTP请求的能力,是Java中处理文件上传的标准库。我们需要在Struts2配置文件中引入对应的拦截器`...

    struts2异步多文件上传和下载

    在Struts2中,你需要在Action类中定义一个或多个类型为`List&lt;Part&gt;`的字段,来接收上传的文件。 对于多文件上传,用户可以通过HTML表单的`&lt;input type="file" multiple&gt;`标签选择多个文件。然后,这些文件会在...

    Struts2实现多文件上传

    在Struts2中,实现多文件上传功能是常见的需求,尤其在处理用户需要上传多个文件的场景下,如上传图片、文档等。本篇文章将详细介绍如何使用Struts2来实现这一功能。 首先,我们需要理解Struts2的上传机制。在...

    struts2中的文件上传和下载示例

    在Struts2中处理文件上传和下载是常见的需求,对于构建交互式的Web应用来说至关重要。以下将详细介绍Struts2中如何实现这两个功能。 一、文件上传 1. 配置依赖:首先,你需要在项目中添加Apache Commons ...

    struts2文件上传下载

    在Struts2中进行文件上传时,必须在标签中指定`enctype="multipart/form-data"`,这样表单的数据才会以二进制流的形式发送,而不是默认的URL编码。在给定的内容中,`&lt;s:form&gt;`标签已经正确设置了`enctype`属性。 2...

    一个Struts1多文件上传实例(附Form中传List示例)

    通过分析和学习这些代码,你可以更好地理解和掌握Struts1中多文件上传和表单中传递List的实践方法。 总之,这个实例提供了关于Struts1中文件上传和复杂表单数据处理的实战经验,对于学习Java Web开发和Struts1框架...

    ext struts2 swfupload 跨域文件上传

    在Struts2中,可以通过配置Action或全局拦截器来开启CORS支持。 在EXTJS和SwfUpload结合的文件上传实现中,用户在前端选择文件后,SwfUpload会使用Flash技术将文件数据封装成POST请求发送到服务器。EXTJS则负责展示...

    struts2s上传文件

    在Struts2中,文件上传功能是一项常用的功能,允许用户通过Web表单上传文件到服务器。本篇将深入探讨Struts2中的文件上传机制、步骤以及常见问题。 首先,我们要理解文件上传的基本原理。在Web应用中,文件上传通常...

Global site tag (gtag.js) - Google Analytics