对于单个文件上传之前已经发布了,现在发布多个文件上传的实例
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即可访问。
体会:
对于单个文件和多个文件上传的唯一区别在于,单个属性和多个属性的数组来表示
还有就是对于以后的开发中,可以尽可能用配置文件来读取数据信息