在struts配置文件里
<controller maxFileSize="2M" inputForward="true" /> 

解决方案 »

  1.   

    你猜对了! 你用的上传组件有设置大小的方法,去查api吧
    一般叫
    setMaxFileSize() 之类的,呵呵!
      

  2.   

    楼上正解,在struts-config.xml里将maxFileSize调大就行
      

  3.   

    修改web.xml,使得ActionServlet在初试化的时候设置文件最大值,内容如下:
    <servlet>
      <servlet-name>action</servlet-name>
      <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
      <init-param>
        <param-name>maxFileSize</param-name>
        <param-value>500M</param-value><!--设置文件大小-->
      </init-param>
    </servlet>
      

  4.   

    Struts根本没有把上传过程中出的超出最大值的异常带到Action,因为那是不可能的,而是把它放到了rquest的Attribute里。         而出了其他异常如enctype不对,磁盘空间不足怎么办?很遗憾,Struts没有去处理它,而是log了一下,抛给了上一层了。 
             那我一定要获得这些全部异常咋办呢?没办法,自己定制一个MultipartRequestHandler吧,那样就能彻底解决上传过程中的控制问题了!         在此之前,我们得先去最新版的commons-fileupload控件看看上传过程中可能抛出多少异常?         //所有上传异常的父类         org.apache.commons.fileupload.FileUploadException 
    //注意:这个类的类名是FileUploadBase.SizeLimitExceededException是个public内//部类。上传的formdata总的数据超出了规定大小         org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException 
             //注意:也是个内部类。这个才是上传的文件超出了规定大小         org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException         其它的,也看看吧:         org.apache.commons.fileupload.FileUploadBase.FileUploadIOException         org.apache.commons.fileupload.FileUploadBase.InvalidContentTypeException         org.apache.commons.fileupload.FileUploadBase.IOFileUploadException         org.apache.commons.fileupload.FileUploadBase.UnknownSizeException 
             要想获得尽可能仔细的数据就在处理的try/catch块里把上面的异常都catch一下,放到request的attribute里去就OK了。         另外还有要说的是,最好用commons-fileupload控件的最新版本,因为DiskFileUpload这个类,commons-fileupload已经弃用了,取而代之的是ServletFileUpload类了,所以一定要注意!切记,切记….. 
    public void handleRequest(HttpServletRequest request) throws ServletException         ...{ 
                   // Get the app config for the current request.               ModuleConfig ac = (ModuleConfig) request.getAttribute(Globals.MODULE_KEY); 
                   // DiskFileItem工厂,主要用来设定上传文件的参数               DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();               // 上传文件所用到的缓冲区大小,超过此缓冲区的部分将被写入到磁盘               fileItemFactory.setSizeThreshold((int) this.getSizeThreshold(ac));               // 上传文件用到的临时文件存放位置               fileItemFactory.setRepository(this.getRepository(ac)); 
                   // 使用fileItemFactory为参数实例化一个ServletFileUpload对象               // 注意:该对象为commons-fileupload-1.2新增的类.               // 对于1.2以下的commons-fileupload版本并不存在此类.               ServletFileUpload upload = new ServletFileUpload(fileItemFactory);               // 从session中读取对本次上传文件的最大值的限制               String maxUploadSize = (String) request.getSession().getAttribute(BasicConstants.maxUploadSize);               // 获取struts-config文件中controller标签的maxFileSize属性来确定默认上传的限制               // 如果struts-config文件中controller标签的maxFileSize属性没设置则使用默认的上传限制250M.               long defaultOrConfigedMaxUploadSize = this.getSizeMax(ac); 
                   if (maxUploadSize != null && maxUploadSize != "")               ...{                     // 如果maxUploadSize设定不正确则上传限制为defaultOrConfigedMaxUploadSize的值                     // 正确则为maxUploadSize转换成的字节数                     upload.setSizeMax((long) this.convertSizeToBytes(maxUploadSize, defaultOrConfigedMaxUploadSize));               }               else               ...{                     // 如果maxUploadSize没设置则使用默认的上传限制                     upload.setSizeMax(defaultOrConfigedMaxUploadSize);               } 
                   // 从session中清空maxUploadSize               request.getSession().removeAttribute("maxUploadSize"); 
                   // Create the hash tables to be populated.               elementsText = new Hashtable();               elementsFile = new Hashtable();               elementsAll = new Hashtable(); 
                   // Parse the request into file items.               List items = null;               // ServletFileUpload类来处理表单请求               // 抛出的异常为FileUploadException的子异常               // 如果捕获这些异常就将捕获的异常放到session中返回.               try               ...{                     items = upload.parseRequest(request);               }               catch (FileUploadBase.SizeLimitExceededException e)               ...{                     // 请求数据的size超出了规定的大小.                     request.getSession().setAttribute(BasicConstants.baseSizeLimitExceededException, e);                     return;               }               catch (FileUploadBase.FileSizeLimitExceededException e)               ...{                     // 请求文件的size超出了规定的大小.                     request.getSession().setAttribute(BasicConstants.baseFileSizeLimitExceededException, e);                     return;               }               catch (FileUploadBase.IOFileUploadException e)               ...{                     // 文件传输出现错误,例如磁盘空间不足等.                     request.getSession().setAttribute(BasicConstants.baseIOFileUploadException, e);                     return;               }               catch (FileUploadBase.InvalidContentTypeException e)               ...{                     // 无效的请求类型,即请求类型enctype != "multipart/form-data"                     request.getSession().setAttribute(BasicConstants.baseInvalidContentTypeException, e);                     return;               }               catch (FileUploadException e)               ...{                     // 如果都不是以上子异常,则抛出此总的异常,出现此异常原因无法说明.                     request.getSession().setAttribute(BasicConstants.FileUploadException, e);                     return;               }               // Partition the items into form fields and files.               Iterator iter = items.iterator();               while (iter.hasNext())               ...{                     FileItem item = (FileItem) iter.next(); 
                         if (item.isFormField())                     ...{                           addTextParameter(request, item);                     }                     else                     ...{                           addFileParameter(item);                     }               }         } 
    struts-config
    <!-- ========== Controller Configuration ================================ -->         <controller>               <!-- The "input" parameter on "action" elements is the name of a                     local or global "forward" rather than a module-relative path -->               <set-property value="true" property="inputForward" />               <set-property value="text/html; charset=UTF-8"                     property="contentType" />               <!-- 通过写类的全名来替代struts默认的MultipartRequestHandler -->     <set-property property="multipartClass"   value="com.amplesky.commonmodule.struts.AmpleskyMultipartRequestHandler" />               <!-- 规定的上传文件的最大值 -->               <set-property property="maxFileSize" value="15M" />               <!--  缓冲区大小 -->               <set-property property="memFileSize" value="5M" />         </controller> 
    http://blog.csdn.net/iwindyforest/archive/2008/01/25/2065791.aspx