11. 多文件上传
多文件上传类似与单文件上传。下面直接通过案例说明。
(1)提交表单:
<form action="/Struts2Study/uploadFiles.action" enctype="multipart/form-data" method="post">
文件1:<input name="uploadFile" type="file"><br>
文件2:<input name="uploadFile" type="file"><br>
文件3:<input name="uploadFile" type="file"><br>
<input type="submit" value="上传文件">
</form>
(2)Action类:
public class UploadFilesAction {
// private List<File> uploadFile;
// private List<String> uploadFileContentType;
// private List<String> uploadFileFileName;
private File[] uploadFile;
private String[] uploadFileContentType;
private String[] uploadFileFileName;
// 省略了set和get方法
public String uploadFiles() throws IOException {
String pathname = ServletActionContext.getServletContext().getRealPath("/files2");
System.out.println(pathname);
if (uploadFile != null && uploadFile.length > 0) {
File destDir = new File(pathname);
if (!destDir.exists()) {
destDir.mkdirs();
}
for(int i = 0; i < uploadFile.length; i++) {
FileUtils.copyFile(uploadFile[i], new File(destDir, uploadFileFileName[i]));
}
}
return "message";
}
}
其他的和单文件上传类似,只是将action的对应文件属性等改为数组或List类型。多文件上传的另一种方法是,表单中上传文件的input的name不同,对应的action中提供的相应的属性,不过比较麻烦。即:
<form action="/xx/xx.action" enctype="multipart/form-data" method="post">
文件1:<input name="uploadFile1" type="file"><br>
文件2:<input name="uploadFile2" type="file"><br>
<input type="submit" value="上传文件">
</form>
对应的action:
private File uploadFile1;
private File uploadFile2;
private String uploadFile1FileName;
private String uploadFile2FileName;
转载请注明出处:http://blog.youkuaiyun.com/mark_lq/article/details/49822989