【问题标题】:Getting MaxUploadSizeExceededException in my spring application在我的 Spring 应用程序中获取 MaxUploadSizeExceededException
【发布时间】:2015-02-23 05:22:17
【问题描述】:

目前我正在开发 Spring 应用程序,它使用 spring veriosn 作为 3.2.12.RELEASE、tomcat 7、Servlet 3.0 并在我尝试上传大小超过 2MB 的文件时在 tomcat 控制台中获取“MaxUploadSizeExceededException”。它适用于小于 2MB 大小的文件。

我已将 CustomMultipartResolver 配置如下,依次扩展 CommonMultipartResolver:-

在 bean 实体下配置。将 maxUploadSize 配置为 200 MB

<bean id="multipartResolver" class="my.custom.multipart.resolver.CustomsMultipartResolver">
        <property name="maxUploadSize" value="209715200" />
</bean>

但是我的控件没有进入这个类,只是进入了 StandardServletMultipartResolver 类的 resolveMultipart 方法。对于大小超过 2MB 的文件,方法 request.getPart() 方法抛出 IllegalStateException 并最终得到 SizeLimitExceededException。

我也尝试在我的 web.xml 中添加以下代码,但它也没有用

<multipart-config>
      <!-- 200MB max -->
      <max-file-size>209715200</max-file-size>
      <max-request-size>209715200</max-request-size>
      <file-size-threshold>0</file-size-threshold>
    </multipart-config>

它在相同的配置下工作正常,除非我使用没有类 StandardServletMultipartResolver 的 spring 版本 3.0.5.RELEASE 并且控件正确进入我的 CustomMultipartResolver 并且我可以上传大小高达 200 MB 的文件。

因此我无法继续。

【问题讨论】:

  • 2mb 似乎是默认值,您是否将 maxUploadSize 传递给 CommonsMultipartResolver

标签: java spring forms spring-mvc file-upload


【解决方案1】:

我不确定您的 spring 应用程序是如何启动的,因为多部分解析器的名称是错误的。它应该是org.springframework.web.multipart.commons.CommonsMultipartResolver,而不是org.springframework.web.multipart.commons.CustomsMultipartResolver

【讨论】:

  • 我编写了 CustomMultipartResolver,它扩展了 CommonMultipartResolver。它在 Spring 版本 3.0.5.RELEASE 上运行良好,但在 Spring 版本 3.2.12.RELEASE 上运行良好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-01
  • 2021-09-18
  • 2012-02-18
  • 2015-04-25
  • 2019-07-05
相关资源
最近更新 更多