一、上传页面: <%@ page language="java" contentType="text/html; charset=GBK"%> <%@taglib prefix="s" uri="/struts-tags"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK" /> <title>使用数组上传多个文件</title> </head> <body> <s:fielderror/> <form action="upload.action" method="post" enctype="multipart/form-data"> 文件标题:<input type="text" name="title" /><br> 选择第一个文件:<input type="file" name="upload" /><br> 选择第二个文件:<input type="file" name="upload" /><br> 选择第三个文件:<input type="file" name="upload" /><br> <input value="上传" type="submit" /> </form> </body> </html> 二、上传成功页面: <%@ page language="java" contentType="text/html; charset=GBK"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>上传成功</title> </head> <body> 上传成功!<br> 文件标题:<s:property value=" + title"/><br> 第一个文件为:<img src="<s:property value="'upload/' + uploadFileName[0]"/>"/><br> 第二个文件为:<img src="<s:property value="'upload/' + uploadFileName[1]"/>"/><br> 第三个文件为:<img src="<s:property value="'upload/' + uploadFileName[2]"/>"/><br> </body> </html> 三、动作类 package lee; import com.opensymphony.xwork2.Action; import org.apache.struts2.ServletActionContext; import java.io.File; import java.io.*; import com.opensymphony.xwork2.ActionSupport; /** * @author yeeku.H.lee kongyeeku@163.com * @version 1.0 * Copyright (C), 2005-2008, yeeku.H.Lee * This program is protected by copyright laws. * Program Name: * Date: */ public class UploadAction extends ActionSupport { private String title; private File[] upload; private String[] uploadContentType; private String[] uploadFileName; //接受依赖注入的属性 private String savePath; //接受依赖注入的方法 public void setSavePath(String value) { this.savePath = value; } private String getSavePath() throws Exception { return ServletActionContext.getRequest().getRealPath(savePath); } public void setTitle(String title) { this.title = title; } public void setUpload(File[] upload) { this.upload = upload; } public void setUploadContentType(String[] uploadContentType) { this.uploadContentType = uploadContentType; } public void setUploadFileName(String[] uploadFileName) { this.uploadFileName = uploadFileName; } public String getTitle() { return (this.title); } public File[] getUpload() { return (this.upload); } public String[] getUploadContentType() { return (this.uploadContentType); } public String[] getUploadFileName() { return (this.uploadFileName); } @Override public String execute() throws Exception { File[] files = getUpload(); FileOutputStream fos = null; FileInputStream fis = null; for (int i = 0 ; i < files.length ; i++) { / /以服务器的文件保存地址和原文件名建立上传文件输出流 fos = new FileOutputStream(getSavePath() + "\\" + getUploadFileName()[i]); fis = new FileInputStream(files[i]); byte[] buffer = new byte[1024]; i nt len = 0; while ((len = fis.read(buffer)) > 0) { fos.write(buffer , 0 , len); } } fos.close();// 流应当关闭。 fis.close(); return SUCCESS; } } 四、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> <constant name="struts.custom.i18n.resources" value="globalMessages"/> <constant name="struts.i18n.encoding" value="GBK"/> <package name="upload" extends="struts-default"> <action name="upload" class="lee.UploadAction"> <interceptor-ref name="fileUpload"> <param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg,image/pjpeg</param> </interceptor-ref> <interceptor-ref name="defaultStack"/> <param name="savePath">/upload</param> <result name="input">/upload.jsp</result> <result>/succ.jsp</result> </action> </package> </struts>
开发者博客:www.developsearch.com
相关推荐
### Struts2中多文件上传知识点详解 #### 一、Struts2框架简介 Struts2是Apache Struts的一个更新版本,它是一个用于构建企业级Java Web应用的强大框架。Struts2采用MVC(Model-View-Controller)设计模式,能够...
在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...
文件上传比较多,多文件上传少一点 文件下载很少的,看似简单,实则不然 网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供...
Struts2提供了完善的文件上传支持,让我们来详细探讨如何在Struts2中实现多文件上传。 首先,我们需要在Struts2的配置文件(struts.xml)中启用文件上传的支持。这通常涉及到添加`<constant>`标签来设置`struts....
下面将详细介绍如何利用SWFUpload与Struts2来实现多文件上传。 **一、SWFUpload组件介绍** SWFUpload 是一个JavaScript库,它利用Flash技术提供了一个高级的文件上传体验。它的主要特性包括: 1. **多文件选择**...
在 Struts 2 中实现文件上传,首先需要在 JSP 页面创建一个支持多部分数据的表单。例如,在 `FileUpload.jsp` 文件中,表单的 `method` 应设置为 `POST`,`enctype` 应设置为 `multipart/form-data`。此外,使用 `...
在Struts2中,文件上传是一个常见的需求,可以帮助用户从客户端上传文件到服务器。本文将详细讲解Struts2框架下三种不同的文件上传方式:copy模式、字节流上传和字符流上传。 1. Copy模式文件上传: Copy模式是...
首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在Action类中声明一个`List<FileInfo>`类型的字段,用于接收上传的文件...
在Struts2中,文件上传是常见的功能之一,尤其在处理用户提交的表单数据时,如上传图片、文档等。在本项目中,"struts2多文件的上传"实现了用户一次性上传多个文件的能力。 要理解这个功能,首先我们需要了解Struts...
在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...
1. **文件上传组件**:在Struts2中,我们通常使用`Commons FileUpload`库来处理文件上传。这个库提供了处理多部分HTTP请求的能力,是Java中处理文件上传的标准库。我们需要在Struts2配置文件中引入对应的拦截器`...
在Struts2中,你需要在Action类中定义一个或多个类型为`List<Part>`的字段,来接收上传的文件。 对于多文件上传,用户可以通过HTML表单的`<input type="file" multiple>`标签选择多个文件。然后,这些文件会在...
在Struts2中,实现多文件上传功能是常见的需求,尤其在处理用户需要上传多个文件的场景下,如上传图片、文档等。本篇文章将详细介绍如何使用Struts2来实现这一功能。 首先,我们需要理解Struts2的上传机制。在...
在Struts2中处理文件上传和下载是常见的需求,对于构建交互式的Web应用来说至关重要。以下将详细介绍Struts2中如何实现这两个功能。 一、文件上传 1. 配置依赖:首先,你需要在项目中添加Apache Commons ...
在Struts2中进行文件上传时,必须在标签中指定`enctype="multipart/form-data"`,这样表单的数据才会以二进制流的形式发送,而不是默认的URL编码。在给定的内容中,`<s:form>`标签已经正确设置了`enctype`属性。 2...
通过分析和学习这些代码,你可以更好地理解和掌握Struts1中多文件上传和表单中传递List的实践方法。 总之,这个实例提供了关于Struts1中文件上传和复杂表单数据处理的实战经验,对于学习Java Web开发和Struts1框架...
在Struts2中,可以通过配置Action或全局拦截器来开启CORS支持。 在EXTJS和SwfUpload结合的文件上传实现中,用户在前端选择文件后,SwfUpload会使用Flash技术将文件数据封装成POST请求发送到服务器。EXTJS则负责展示...
在Struts2中,文件上传功能是一项常用的功能,允许用户通过Web表单上传文件到服务器。本篇将深入探讨Struts2中的文件上传机制、步骤以及常见问题。 首先,我们要理解文件上传的基本原理。在Web应用中,文件上传通常...