<s:file/>有个属性multiple 在标签上添加这属性<s:file name="" id="" multiple/>这样就能同时选中多个文件来选择上传了
upload.jsp
<s:form action="resourceAction_addExercises" name="exerciseForm" id="exerciseForm" method="post" enctype="multipart/form-data">
<input type="file" name="exercise" multiple/>
</s:form>
后台Action
Resource resource[]=new Resource[20];//数组对象
private File[] exercise;//上传文件(与标签名一致)
private String[] exerciseFileName;//上传文件名
private String[] exerciseContentType;//上传文件类型
。。。。。。。。。。。。。分别实现get、set方法
方法体
try{
int i;
FileInputStream is=null;
FileOutputStream fost=null;
for(i = 0;i < exercise.length;i++){
is = new FileInputStream(exercise[i]);
//String root = ServletActionContext.getServletContext().getRealPath("/upload");//得到当前目录下的upload目录的绝对路径
fost = new FileOutputStream(ServletActionContext.getServletContext()
.getRealPath("exercises/" + exerciseFileName[i]));
int length = 0;
byte[] buffer = new byte[1024];
while((length = is.read(buffer))!=-1){
fost.write(buffer, 0, length);
}
ActionContext.getContext().getSession().put("exe", "文件上传成功!");
is.close();
fost.close();
}
}catch(Exception e){
e.printStackTrace();
return INPUT;
}
return "toexercise";
}