本人在Struts项目中遇到一个多个文件上传的棘手问题,请教高人。以下是我要具体实现的代码
struts-config.xml<form-bean name="S4D2500_Form" type="org.apache.struts.validator.DynaValidatorActionForm">
<form-property name="inputFile" type="org.apache.struts.upload.FormFile"/>
</form-bean>
因为是复数个上传文件,所以想在struts-config.xml中这么定义,......type="org.apache.struts.upload.FormFile[]"/> 
如果能定义成FormFile[]的话,那就能通过INDEX值来区分并且上传文件了,但是我在struts-config.xml文件中如上定义的结果是根本行不通,请教高人怎么在struts-config.xml文件中定义FormFile数组?
如果不这样的话,那么要怎么实现动态(不定数量)多个文件上传呢?
jsp:
循环开始。
<html:file property="inputFile" size="45" maxlength="256"/>
循环结束....

解决方案 »

  1.   

    不用DynaValidatorActionForm,直接用ActionForm定义org.apache.struts.upload.FormFile[]可以不?
      

  2.   

    据调查好像可以用这段代码来实现
    Hashtable hash=form.getMultipartRequestHandler().getFileElements();
          Iterator i = hash.values().iterator();
          FormFile formFile = null;
            while(i.hasNext()) {
                formFile = (FormFile)i.next();
                out = new java.io.FileOutputStream(new File(uploadpath + File.separator+filename));
                out.write(formFile.getFileData());
            }    }
    但是我用form.getMultipartRequestHandler().getFileElements();取不到FORM中的项目啊,
    得到一个NULL值,请教到底怎么回事?
    FORM是如下定义的
    <form-bean name="S4D2500_Form" type="org.apache.struts.validator.DynaValidatorActionForm">
    <form-property name="inputFile" type="org.apache.struts.upload.FormFile"/>
    </form-bean>