首页 > 解决方案 > Jax rs 控制器设置上传文件大小限制

问题描述

我有带有 jax-rs 控制器的 Spring Boot 服务。我需要限制上传文件的大小。所有 spring 的属性都不起作用,因为 jax-rs 不使用它们。

我正在使用配置来启用多部分加载

register(MultiPartFeature.class);

我可以通过控制器上传文件。现在我想限制文件大小。我尝试这样使用MultipartConfigElement

@Bean
    ServletRegistrationBean jerseyServlet() {
        ServletRegistrationBean registration = new ServletRegistrationBean(new ServletContainer(), "/*")
        registration.addInitParameter(ServletProperties.JAXRS_APPLICATION_CLASS, IBankJerseyConfig.class.getName())
        registration.setMultipartConfig(new MultipartConfigElement(null, 10000L, -1, 0))
        registration
    }

现在,当尝试加载超出限制的文件时,我得到Stream closed错误。但是当我加载不超过限制的文件时,我得到Bad request 400.

当我使用这些配置时,我可以成功加载任何大小的文件:

@Bean
    ServletRegistrationBean jerseyServlet() {
        ServletRegistrationBean registration = new ServletRegistrationBean(new ServletContainer(), "/*")
        registration.addInitParameter(ServletProperties.JAXRS_APPLICATION_CLASS, IBankJerseyConfig.class.getName())
        registration
    }

请帮助我在 Spring Boot 中限制 jax-rs 控制器的文件大小。

标签: javaspringspring-bootrestjax-rs

解决方案


推荐阅读