Action的写法:
public class MultiUploadAction extends ActionSupport {
// 接收多文件上传参数,提供数组接收就可以了
private File[] upload;
private String[] uploadContentType;
private String[] uploadFileName;
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 execute() throws Exception {
for (int i = 0; i < upload.length; i++) {
// 循环完成上传
File srcFile = upload[i];
String filename = uploadFileName[i];
// 定义目标文件
File destFile = new File(ServletActionContext.getServletContext() .getRealPath("/upload" + "/" + filename));
FileUtils.copyFile(srcFile, destFile);
}
return NONE;
}
}
前台html的写法
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>多文件上传页面</h1>
<form method="post" enctype="multipart/form-data" action="${pageContext.request.contextPath }/multiUpload.action">
上传文件 <input type="file" name="upload" /> <br/> //注意三个标签的name属性名相同,
上传文件 <input type="file" name="upload" /> <br/>
上传文件 <input type="file" name="upload" /> <br/>
<input type="submit" value="上传" />
</form>
</body>
</html>
XML文件的写法
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts SYSTEM "http://struts.apache.org/dtds/struts-2.0.dtd" PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"> -<struts>
<constant value="true" name="struts.devMode"/>
<!-- 文件上传总大小 -->
<constant value="20000000" name="struts.multipart.maxSize"/>-
<package name="basicstruts2" extends="struts-default">-
<action name="index">
<result>/index.jsp</result>
</action>
<!-- 文件上传 -->
-<action name="upload" class="cn.itcast.struts2.demo1.UploadAction">
<!-- 上传错误页面 ,如果出错仍然返回上传页面,并且可以用<s:filederror>来显示出错信息-->
<result name="input">/demo1/upload.jsp</result>
<!-- 设置上传参数 -->
- <interceptor-ref name="defaultStack">
<!-- 只允许上传 mp3和txt文件 -->
<param name="fileUpload.allowedExtensions">.mp3,.txt</param>
<!-- 当前form 上传文件大小限制 -->
<param name="fileUpload.maximumSize">6000000</param>
</interceptor-ref>
</action>
<!--多文件的上传 -->
<action name="multiUpload" class="cn.itcast.struts2.demo1.MultiUploadAction"/>
</package>
</struts>