多文件上传和单文件上传基本一样,只是变成了数组。类不要忘了建立get set方法。 上传文件jsp页面 大头像上传:
<input type="file" name="mypic"/><br/>
小头像上传:
<input type="file" name="mypic"/><br/>
那个file那个name属性的名字要和实体类的
private String uploader;// 上传者
private File[] mypic;// 上传文件
private String[] mypicContentType;// 上传文件类型
private String[] mypicFileName;// 上传文件的文件名
// 定义服务器上传路径
Action类
package Action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.struts2.ServletActionContext;
public class UploadAction {
// 定义请求参数
private String uploader;// 上传者
private File[] mypic;// 上传文件
private String[] mypicContentType;// 上传文件类型
private String[] mypicFileName;// 上传文件的文件名
// 定义服务器上传路径
private String savePath;
public String getUploader() {
return uploader;
}
public void setUploader(String uploader) {
this.uploader = uploader;
}
public File[] getMypic() {
return mypic;
}
public void setMypic(File[] mypic) {
this.mypic = mypic;
}
public String[] getMypicContentType() {
return mypicContentType;
}
public void setMypicContentType(String[] mypicContentType) {
this.mypicContentType = mypicContentType;
}
public String[] getMypicFileName() {
return mypicFileName;
}
public void setMypicFileName(String[] mypicFileName) {
this.mypicFileName = mypicFileName;
}
public String getSavePath() {
return savePath;
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public String load() throws Exception {
// 获取服务器保存路径绝对地址
String adsSavePath = ServletActionContext.getServletContext()
.getRealPath(savePath);
try {//循环处理多按个文件上传
for (int i = 0; i < mypic.length; i++) {
// 使用文件读写实现文件上传
FileInputStream fis = new FileInputStream(mypic[i]);
FileOutputStream fos = new FileOutputStream(adsSavePath
+ File.separator + mypicFileName[i]);
byte[] b = new byte[fis.available()];
fis.read();
fos.write(b);
// 关闭流
fis.close();
fos.flush();
fos.close();
}
} catch (Exception e) {
e.printStackTrace();
return "error";
}
return "success";
}
}
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="upload" class="Action.UploadAction" method="load">
<param name="savePath">/upload</param>
<result name="success">success.jsp</result>
<result name="error">error.jsp</result>
</action>
</package>
</struts>
上传页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>下载页面</title>
</head>
<body>
<form action="upload.action" method="post" enctype="multipart/form-data">
上传者:<input type="text" name="uploader"/><br/>
大头像上传:<input type="file" name="mypic"/><br/>
小头像上传:<input type="file" name="mypic"/><br/>
<input type="submit" value="上传"/><br/>
</form>
</body>
</html>
上传成功页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>文件上传成功页面</title>
</head>
<body>
恭喜:${uploader }上传成功<br/>
文件上传列表:
<c:forEach var="f" items="${mypicFileName}">
<li>${f}</li>
</c:forEach>
</body>
</html>
上传失败页面