第一步:
struts2中多文件上传,和文件上传都差不多;
首先都是在form表单中记得添加 enctype="multipart/form-data" 来指定有文件需要上传
需要注意的是name的名字都要一样,便于后面程序的管理。
例如:
<form enctype="multipart/form-data" action="<%=request.getContextPath()%>/control/department/action2" method="post">
文件1:<input type="file" name="userImg"><br/>
文件2:<input type="file" name="userImg"><br/>
文件3:<input type="file" name="userImg"><br/>
<input type="submit" value="提交">
</form>
第二步:
接着是在action文件中添加属性:userImg[]、userImgFileName[](固定写法name+FileName两部分组成。 这个是用于得到文件的名称),并提供这2个属性的get和set方法,Struts2会自动把userimg复制到userImg[]中!
例如:
private File userImg[];//得到上传的文件
private String userImgFileName[];//得到文件的名称,固定写法
public File[] getUserImg() {
return userImg;
}
public void setUserImg(File[] userImg) {
this.userImg = userImg;
}
public String[] getUserImgFileName() {
return userImgFileName;
}
public void setUserImgFileName(String[] userImgFileName) {
this.userImgFileName = userImgFileName;
}
第三步:
最后在excute()方法中,将userImg[]文件复制到硬盘中
public String excute() throws IOException{
String filePath=ServletActionContext.getServletContext().getRealPath("/imgs");//得到硬盘中存放imgs的真实路径!用于创建文件夹
File file=new File(filePath);//得到文件夹
if(!file.exists())file.mkdirs();//如果文件夹不存在,那么就创建
if(userImg!=null){
for(int i=0;i<userImg.length;i++){ //遍历所有的userImg[]
FileUtils.copyFile(userImg[i], new File(file,userImgFileName[i]));//调用FileUtils方法 复制到硬盘中
}
}
return "message";
}
-----------------------------------------------------------苦难不是博得同情的资本,只有不断奋斗才能改变命运!