在Spring 配置文件 xx-servlet.xml中配置  最大文件大小
    <!-- MultipartResolver for parsing file uploads, implementation for Commons FileUpload -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- set the upload file's size to 1MB ????-->
        <property name="maxUploadSize">  
             <value>1048576</value>  
        </property>
        <property name="defaultEncoding">  
            <value>UTF-8</value>  
        </property> 
    </bean>上傳文件過大時,不會进入控制層,會直接在Servlet.service()中拋出異常,捕获不到。
需要捕獲到異常 提示用戶上傳文件過大。哪位有什麽好辦法么?謝謝!(不要說客戶端判断,IE7无法無法操作文件)2009-08-26 10:48:37,484 WARN [org.apache.catalina.core.StandardWrapperValve] - <Servlet.service() for servlet adp threw exception>
org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size of 1048576 bytes exceeded; nested exception is org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (1915754443) exceeds the configured maximum (1048576)
Caused by: 
org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (1915754443) exceeds the configured maximum (1048576)
    at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:797)
    at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:323)
    at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:341)
    at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
    at org.springframework.web.multipart.commons.CommonsMultipartResolver.resolveMultipart(CommonsMultipartResolver.java:128)
    at org.springframework.web.servlet.DispatcherServlet.checkMultipart(DispatcherServlet.java:982)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:835)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:793)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at com.twm.adp.management.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:59)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)

解决方案 »

  1.   

    1 你再页面层再捕获一次
    2 你可以写一个普通类,作为中间代理,在那里捕获异常。JPA等容器管理的,都会有这个问题。比较讨厌!
      

  2.   

    获取文件的大小,然后用JavaScript判断并提示.
      

  3.   

    给你提供几个上传的源码吧仿163网盘无刷新多附件上传源码JSP上传文件源代码JavaBean实现多文件上传
      

  4.   


    我也觉得这种方法不错,即给用户合理的提示,又省去了Server段的一堆处理。
    当然server端必要的判断还是应该有的。