用struts的<html:file></html:file>上传文件,上传小文件一切正常。
当上传几百兆的大文件时,actionForm中的数据都是null,不执行set方法,直接执行validate。到action中,form中的值
都为null。接着就报nullpoint
这是什么原理呢?

解决方案 »

  1. Struts2.0默认的上传文件的大小是2M.如果上传超过这个大小的就会报错.可以通过在struts.xml中修改默认的上传文件大小: <constant name= "struts.multipart.maxSize" value="5242880" />,在这里设置成了5M,允许上传5M的文件.
      

  2. 表单数据部多的话,放URL里面吧。
      

  3. 大文件不建议用file了用上传控件吧。
      


  4. 不是struts2.0 是struts 由于整个工程是使用struts构建的,我也必须用struts改……
      


  5. 没有设置限制,因为业务上可能有上传大文件的需求。在百度上google的结果都是讨论怎么限制上传文件大小,没有找到我要的答案。
      

  6. Struts2.0默认的上传文件的大小是2M.如果上传超过这个大小的就会报错.可以通过在struts.xml中修改默认的上传文件大小: <constant name= "struts.multipart.maxSize" value="5242880" />,在这里设置成了5M,允许上传5M的文件.
      

  7. 原因找到了,原来是我使用了FormFile,struts1用于上传的org.apache.struts.upload包中的CommonsMultipartRequestHandler类中固定了上传文件的最大化限制为250M,并且没有留外部配置接口。
    需要根据源码修改一下。具体参考http://www.javaeye.com/topic/212566,讲的很精彩!推荐大家看一下。
      

类似问题 »