`

struts2批量上传文件

阅读更多

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">
  <display-name></display-name>
  
  <display-name>Struts Blank</display-name>

	<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>

 

jsp页面代码:

<script type="text/javascript">
		$(function() {
			$("#button").bind("click",function() {
				var html = $("<input type='file' name='file'>");
                var button = $("<input type='button' name='button' value='删除'><br>");
                
                $("#fileDiv").append(html).append(button);
                
                button.click(function()
                {
                    html.remove();
                    button.remove();
                });
			});
		});
	</script>
	
  </head>
  
  <body>
  	<form action="myTestUploadMulti" method="post" enctype="multipart/form-data">
  		username:<input type="text" name="username" /><br/>
  		<div id="fileDiv">file:<input type="file" name="file"/></div><input type="button" value="添加" id="button"><br/>
  		<input type="submit" value="submit">
  	</form>
  	DiagTools.exe<a href="fileDownLoad">下载</a>
  </body>

 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>
	<package name="default" namespace="/" extends="struts-default">
		<action name="myTestUploadMulti" class="cn.bdx.action.UploadAction">
			<result name="success">/main/index.jsp</result>
		</action>
		
			</package>
</struts>

 最后就是action类的代码:

package cn.bdx.action;


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport{

	private String username;
	private List<File> file;
	private List<String> fileFileName;
	private List<String> fileContentType;
	
	@Override
	public String execute() throws Exception {
		System.out.println(ServletActionContext.getServletContext());
		String root = ServletActionContext.getServletContext().getRealPath("/upload");
		System.out.println(root);
		
		
		for (int i=0;i<file.size();i++) {
			
			InputStream is = new FileInputStream(file.get(i));
			OutputStream os = new FileOutputStream(new File(root,fileFileName.get(i)));
			
			System.out.println("fileName = " + fileFileName);
			System.out.println("file=" +file.get(i).getName());
			System.out.println("filePath = " + file.get(i).getPath());
			
			byte[] buffer = new byte[1024];
			int length = 0;
			while(-1!=(length = is.read(buffer, 0, buffer.length))) {
				os.write(buffer);
			}
			os.close();
			is.close();
		}
		return SUCCESS;
	}
	

	public String getUsername() {
		return username;
	}


	public void setUsername(String username) {
		this.username = username;
	}

	public List<File> getFile() {
		return file;
	}

	public void setFile(List<File> file) {
		this.file = file;
	}


	public List<String> getFileFileName() {
		return fileFileName;
	}


	public void setFileFileName(List<String> fileFileName) {
		this.fileFileName = fileFileName;
	}


	public List<String> getFileContentType() {
		return fileContentType;
	}


	public void setFileContentType(List<String> fileContentType) {
		this.fileContentType = fileContentType;
	}

	
	
	
}

 

分享到:
评论

相关推荐

    Struts2批量上传文件

    Struts2批量上传文件是一个常见的Web开发功能,用于允许用户一次性上传多个文件。在Struts2框架中,这个功能可以通过其强大的Action支持和插件机制来实现。在本篇文章中,我们将深入探讨如何利用Struts2实现批量文件...

    struts2 实现文件批量上传

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

    struts2上传文件,批量上传文件,需要的直接下载

    Struts2是一个强大的Java web应用程序框架...以上就是关于"Struts2批量上传文件"的基本实现和相关知识点,希望对你有所帮助。在实际项目中,根据具体需求,可能还需要考虑性能优化、并发处理以及文件的版本控制等问题。

    Struts2批量上传

    ### Struts2批量上传技术详解 #### 一、引言 在Web开发中,文件上传是常见需求之一,尤其在需要处理多个文件上传时,批量上传功能显得尤为重要。Struts2框架提供了强大的文件上传支持,使得开发者能够轻松实现批量...

    Struts2文件批量上传

    Struts2文件批量上传是Java Web开发中常见的一种功能,主要应用于网站后台处理大量用户上传的文件,如图片、文档等。Struts2是一个强大的MVC框架,它提供了丰富的功能来支持文件上传操作,包括单个文件上传和批量...

    Struts2 单个、批量文件上传 精简源码

    在Struts2中,批量上传通常涉及到`List&lt;File&gt;`或`List&lt;Part&gt;`类型的属性,以接收多个文件。用户可以选择多个文件,然后这些文件会被一起发送到服务器。在Action中,你需要遍历这个列表并保存每个文件。 例如,批量...

    struts2 批量上传 图片+文件

    在这个场景中,我们讨论的是如何在Struts2中实现图片和文件的批量上传,并且在上传过程中显示进度条。 批量上传是指用户可以一次性选择多个文件进行上传,而不仅仅是一个文件。这通常需要前端界面支持多选文件的...

    struts2+ajax实现批量上传文件(简单实现,自己加工)

    FileUpload库可以帮助你方便地处理多个上传文件,包括读取文件内容、检查文件大小等。 配置Struts2的Action类后,确保在struts.xml配置文件中定义了对应的Action映射,这样Ajax请求才能正确路由到处理函数。同时,...

    struts1实现的文件批量上传

    FormFile是Struts1用来处理上传文件的类,它可以获取文件名、内容类型、大小等信息。在这个例子中,使用了一个ArrayList来存储用户选择的所有文件: ```java public class BatchUploadForm extends ActionForm { ...

    Struts批量上传文件实例word

    总的来说,Struts批量上传文件涉及到前端表单的正确配置、`ActionForm`的设计、`struts-config.xml`的配置以及Action类中处理文件上传的方法实现。通过以上步骤,你可以构建一个基本的Struts批量上传文件系统。在...

    Struts2文件批量上传.zip

    在Struts2中,文件上传是常见的功能之一,特别是批量上传,可以处理用户一次性上传多个文件的需求。下面将详细介绍Struts2实现文件批量上传的相关知识点。 1. **Struts2的ActionContext与FileUpload插件** Struts2...

    struts2中的批量上传与文件下载(解决中文乱码问题)

    本文将详细介绍如何在Struts2框架下实现批量上传与文件下载,并解决中文乱码问题。 一、Struts2文件上传 1. 配置Struts2文件上传支持: 在struts.xml配置文件中,我们需要添加`&lt;constant&gt;`元素来设置允许上传的...

    struts2+ajax+jquery异步批量上传超大文件.zip

    struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步...

    基于Struts2和Spring的网络硬盘系统,批量上传文件和在线解压,优秀源代码!

    基于Struts2和Spring的网络硬盘系统,批量上传文件和在线解压,优秀源代码! 基于Struts2和Spring的网络硬盘系统,批量上传文件和在线解压,优秀源代码! 基于Struts2和Spring的网络硬盘系统,批量上传文件和在线...

    GooUploader源码和基于GooUploader整合Struts2批量上传

    `GooUploader`和`Struts2`的整合提供了一种高效、便捷的批量上传解决方案。本文将深入解析`GooUploader`的源码,并探讨如何将其与`Struts2`框架整合,实现批量文件上传的功能。 首先,`GooUploader`是一款强大的...

    基于插件和Struts的批量上传

    2. **Struts2配置**:在Struts2框架中,需要为批量上传创建一个Action类,该类通常包含一个或多个接收文件的setter方法。在struts.xml配置文件中,需要定义对应的action,设置result类型为dispatcher,以便处理上传...

    struts2批量提交数据

    3. **配置Struts2**:在Struts2的配置文件(struts.xml)中,我们需要为批量提交的Action定义一个映射。 ```xml &lt;result name="success"&gt;/success.jsp &lt;result name="input"&gt;/input.jsp ``` 4. **处理请求**:...

    jquery+uploadify + struts2 + jsp 图片批量上传Demo

    在本文中,我们将深入探讨如何使用jQuery、Uploadify、Struts2和JSP技术实现一个图片批量上传的Demo。这个组合提供了高效、用户友好的文件上传解决方案,特别适合需要处理大量图片的Web应用。 首先,jQuery是一个轻...

    extjs struts2 多图片批量上传控件

    在批量上传过程中,Struts2接收前端发送的文件数据,并处理这些文件的存储和业务逻辑。它通常使用Action类来处理请求,配合Interceptor拦截器处理上传过程中的验证、权限检查等任务。Struts2的配置文件(struts.xml...

    基于Struts2.3的多文件批量上传/下载

    本篇文章将深入探讨如何在Struts2.3环境下实现多文件的批量上传和下载。 首先,我们需要理解文件上传的基本原理。在HTTP协议中,文件上传通常通过表单的`&lt;input type="file"&gt;`元素实现,然后服务器端的框架负责解析...

Global site tag (gtag.js) - Google Analytics