对于单个文件上传之前已经发布了,现在发布多个文件上传的实例
java
package hs.struts2.fileupload.action;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.io.FileUtils;
/**
*功能 struts2多文件上传
*/
public class FileUploadArrayAction {
// 自定义文件名
private String filename;
// 上传文件数组,用于多个文件上传
private File uploadFile[];
// 获取上传文件名
private String uploadFileFileName[];
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public File[] getUploadFile() {
return uploadFile;
}
public void setUploadFile(File[] uploadFile) {
this.uploadFile = uploadFile;
}
public String[] getUploadFileFileName() {
return uploadFileFileName;
}
public void setUploadFileFileName(String[] uploadFileFileName) {
this.uploadFileFileName = uploadFileFileName;
}
/**
* 多文件上传
* @return
* @throws IOException
*/
public String upload() throws IOException {
System.out.println("filename:"+filename);
String path= "F://test";
//多个文件上传
for(int i=0;i<uploadFile.length;i++){
//根据时间和输入文件名来标识文件名
File file =new File(path,new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss").format(new Date()).toString()+filename+i);
FileUtils.copyFile(uploadFile[i], file);
}
return "upload";
}
}
jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>struts2多文件上传</title>
</head>
<body>
<s:form action="arrayfileupload!upload.action" method="post" enctype="multipart/form-data" >
<s:label value="filename:"></s:label>
<s:textfield name="filename"></s:textfield>
<s:file name="uploadFile"></s:file>
<s:file name="uploadFile"></s:file>
<s:file name="uploadFile"></s:file>
<s:submit value="上传"></s:submit>
</s:form>
</body>
</html>
xml
<!-- struts2多文件上传 -->
<action name="arrayfileupload" class="hs.struts2.fileupload.action.FileUploadArrayAction">
<result name="upload">/index.jsp</result>
</action>
最后部署到服务器上,请求http://localhost:8080/struts2/test1/fileupload.jsp即可访问。
体会:
对于单个文件和多个文件上传的唯一区别在于,单个属性和多个属性的数组来表示
还有就是对于以后的开发中,可以尽可能用配置文件来读取数据信息
分享到:
相关推荐
本示例"MultiFileUpload_Struts2_多文件上传"旨在演示如何在Struts2框架下实现多文件上传功能。 首先,我们需要理解Struts2中的Action类,这是处理用户请求的核心。在多文件上传的场景中,我们需要创建一个Action类...
标题中的“K8_Struts2_EXP S2-045 & 任意文件上传 20170310”指的是一个与Struts2框架相关的安全漏洞,具体为S2-045漏洞,该漏洞允许攻击者进行任意文件上传。20170310可能是漏洞被发现或公开的日期,也可能是指该...
标题中的"JQuery_uploadify_struts2_jsp__ajax多文件上传"涉及到的是一个使用jQuery、uploadify插件、Struts2和JSP技术实现的AJAX多文件上传功能。这个功能允许用户在不刷新页面的情况下,上传多个文件到服务器。 ...
"K8_Struts2_EXP 20170310"工具提供了一个方便的方式来检查和预防Struts2的S2-045漏洞和任意文件上传问题,保护你的系统免受潜在的黑客攻击。记得定期更新你的框架和依赖,同时,对所有用户输入进行严格的验证和过滤...
"任意文件上传"是另一个常见的攻击手段,攻击者可以利用Struts2的文件上传功能来上传恶意文件。一旦文件被上传到服务器,它可以被执行或者作为进一步攻击的跳板。例如,攻击者可能会上传一个包含Webshell的文件,...
总之,这个项目实例为使用Struts2和Uploadify实现带进度条的多文件上传及下载功能提供了一个基础模板,对于学习和实践此类功能的开发者来说是一个有价值的参考。通过深入研究和理解这个项目的代码,可以提升对Struts...
在这个“struts2_单文件上传”的示例中,我们将探讨如何在Struts2中实现单个文件的上传功能。 首先,我们需要了解文件上传的基本原理。在Web应用中,文件上传通常涉及到HTML表单、HTTP协议以及服务器端的处理。HTML...
在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...
Struts 2.1.8 学习源码内容 Struts2_01FirstDemo : 跑通第一个Struts2的实例 Struts2_02CURD : 关于Struts2的增、删、改和查 实际业务中数据来自数据库,从DAO层查询...Struts2_06FileUpload : Struts2上传文件的使用
描述中提到的“补充我以前上传的资源的不足,进行了进一步的扩展升级”,意味着这个版本的`struts2_ant.jar`可能包含了一些新的功能、修复了已知问题或者提升了性能,以适应不断发展的Struts2框架和开发者需求。...
文件上传比较多,多文件上传少一点 文件下载很少的,看似简单,实则不然 网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供...
jspstruts1_2struts2 中文件上传 java文件上传
传智播客struts2_3(拦截器_文件上传_输入验证_国际化).ppt
Struts2提供了完善的文件上传支持,让我们来详细探讨如何在Struts2中实现多文件上传。 首先,我们需要在Struts2的配置文件(struts.xml)中启用文件上传的支持。这通常涉及到添加`<constant>`标签来设置`struts....
下面将详细介绍如何利用SWFUpload与Struts2来实现多文件上传。 **一、SWFUpload组件介绍** SWFUpload 是一个JavaScript库,它利用Flash技术提供了一个高级的文件上传体验。它的主要特性包括: 1. **多文件选择**...
【课程大纲】 ...struts2_8_文件上传与下载 共20页.pptx struts2_9_拦截器 共32页.pptx struts2_10_转换器 共22页.pptx struts2_11_插件 共51页.pptx struts2_表单校验失败跳input视图问题 共13页.pptx
Struts2框架是Java Web开发中的一个流行MVC(Model-View-Controller)框架,它提供了丰富的功能,包括处理表单提交、文件上传等。在Struts2中,文件上传是一个常见的需求,可以帮助用户从客户端上传文件到服务器。...
struts_fileupload文件上传Struts2
- **Struts2_8_文件上传与下载**:文件上传和下载功能的实现方法。 - **Struts2_9_拦截器**:拦截器的工作原理及其自定义实现。 - **Struts2_10_转换器**:转换器的功能及其实现细节。 - **Struts2_11_插件**:...
这可以通过添加`<constant>`标签来设置`struts.multipart.parser`为jakarta,这是Struts2推荐的多部分解析器,以支持大文件上传。同时,设置`struts.multipart.maxSize`属性,限制上传文件的大小。 ```xml ...