struts 的动态多文件上传用getMultipartRequestHandler.getFileElements()为什么只是上传了最后的一个文件?
请问 : 在做 动态 多 文件上传时(jsp页面表现为点击一个button新增一行或者说新增一个上传框) 用 如下代码 :
String dirPath = getServlet().getServletContext().getRealPath( "/ ")
+ "/upload ";
Hashtable fileh = actionForm.getMultipartRequestHandler().
getFileElements(); //这里fileh.size()总是等于1
for (Enumeration e = fileh.keys(); e.hasMoreElements(); ) {
String key = (String) e.nextElement();
try {
FormFile formfile = (FormFile) fileh.get(key);
String filename = formfile.getFileName().trim();
*************
上传的结果只是上传了 最后一个上传框的文件 , 而不是所有的文件(多个) ,
fileh.size() 那里总是等于1, 请问这是 什么原因呢?
------解决方案--------------------Hashtable elements = multipartRequestHandler.getFileElements();
// 循环遍历每一个文件
Collection values = elements.values();
int k = 0;
for (java.util.Iterator i = values.iterator(); i.hasNext();)
{
FormFile file = (org.apache.struts.upload.FormFile) i.next();
....
我作的时候是这样取的,没有问题
------解决方案--------------------DiskFileUpload fu = new DiskFileUpload();
// 得到所有的文件:
List fileItems = fu.parseRequest(request);
Iterator i = fileItems.iterator();
------解决方案--------------------我怎么传给你,网上有的commons-fileupload.jar
------解决方案--------------------是不是用commons-fileupload-1.2的?
有時間看看。
http://www.strongd.net/blog/show/28
------解决方案--------------------String dirPath = getServlet().getServletContext().getRealPath( "/ ") +
"/upload ";
Hashtable files = form.getMultipartRequestHandler().
getFileElements();
for(Enumeration e = files.keys(); e.hasMoreElements();) {
String key = (String) e.nextElement();
try {
FormFile formfile = (FormFile) files.get(key);
String filename = formfile.getFileName().trim();
if (! " ".equals(filename)) {
InputStream ins = formfile.getInputStream();