用<input name="file" type="file">可不可以??我jsp里用得是<input name="file" type="file">,然后ActionForm里有个FormFile属性,在Action里用这个FormFile来取得文件,结果报下面的错误了:java.lang.IllegalArgumentException: Cannot invoke com.psp.struts.form.UploadForm.setFile - argument type mismatch
org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1778)
org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648)
org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677)
org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022)
org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
com.psp.servlet.EncodingFilter.doFilter(EncodingFilter.java:27)

解决方案 »

  1.   

    刚才自己试了,不是必须的。。报上面的错误是因为我把form里的方法写为get了。必须是post才行!!
      

  2.   

    struts的标签解析生成的也是<input type="file",
    你可以查看页面源代码
      

  3.   

    呵呵,生成的都是html,所以写法怎么样结果正确就好了
      

  4.   

    别折腾人了,到google上搜素一下 AlanX Upload ,三句代码,实现批量上传:<%@ taglib prefix="ax" uri="/WEB-INF/AlanXUpload.tld" %>
    .........
      <head>
       ..........
    <ax:head/>
      </head>
     
      <body>
      <ax:body/>
      </body>
    </html> 主要功能:
    1.可一次性选择200到1000个文件批量上传
    2.可在选择前指定文件格式(如:".xls;.doc")和大小
    3.单个文件大小允许最到到100M,多个文件大小可达1G
    4.可实时显示当前在批量上传的文件总大小和总数及进度条
    5.可实时显示单个文件的总大小和以上传大小及进度