如何限制java控制器中多部分文件的大小

时间:2018-03-14 15:14:13

标签: java spring tomcat

我有一个接收多部分文件参数的rest控制器方法,我需要约束它的文件大小限制。我尝试了不同的选项,但它对我来说还没有用。我正在使用Apache Tomcat 8.我正在通过Windows服务调用rest方法。

遵循类和方法的定义:

@Controller
public class MyClass{
     ...
}

@RequestMapping(value = "/path/method/param1/{param1}/param2/{param2}/", 
                method = RequestMethod.POST)
public ResponseEntity<String> method(DTO dto, @RequestParam("file") MultipartFile multipartFile){
    ...
}

测试解决方案:

  1. 在web.xml文件中添加以下节点
  2. <multipart-config>
       <max-file-size>52428800</max-file-size>
       <max-request-size>52428800</max-request-size>
       <file-size-threshold>0<</file-size-threshold>
    </multipart-config>
    
    1. 将maxPostSize和maxSwallowSize属性添加到server.xml文件中的连接器节点

    2. 将大小参数添加到.properties文件

    3. 在控制器类中添加@MultipartConfig注释

    4. 有任何想法或建议吗?

1 个答案:

答案 0 :(得分:2)

检查spring-servlet.xml文件,也许有一个类org.springframework.web.multipart.commons.CommonsMultipartResolver的创建bean,它可能高于其他配置或方法来处理这个