问题描述:
实现不定个数的文件上传
解决方案:
1、MultipartRequestHandler
关键代码:
FormFile[] formFile = null;
// 得到所有的文件请求元素
Hashtable files = dynauploadForm.getMultipartRequestHandler()
.getFileElements();
if (files != null && files.size() > 0) {
// 初始化FormFile
formFile = new FormFile[files.size()];
// 得到files的keys
Enumeration enums = files.keys();
String fileKey = null;
int i = 0;
// 遍历枚举
while (enums.hasMoreElements()) {
// 取得key
fileKey = (String) (enums.nextElement());
// 初始化每一个FormFile(接口)
formFile[i] = (FormFile) files.get(fileKey);
System.out.println("key:" + fileKey);
// 分别上传
try {
System.out.println("上传");
//upFile(formFile[i], "d:/test/");
} catch (Exception e) {
e.printStackTrace();
}
i++;
}
}
参考文章
Struts1.2实现动态多文件(不定个数)上传
http://kb.cnblogs.com/b/178722/
2、lazy actionform
FormFile formFile = (FormFile) dynaForm.get("file1");
ps: 这里file1要知道,可以通过其他固定属性提交获取。
参考文章:
Lazy ActionForm
http://blog.csdn.net/zmfkplj/archive/2007/12/01/1910598.aspx
ps:1、文章中的List方式没有测试通过
2、action 中的 validate="false" 否则报Resources cannot be null 异常