【发布时间】:2021-12-29 15:15:45
【问题描述】:
考虑两个控制器端点方法:
@RestController
public class MyController {
@PostMapping("/foo")
public ResponseEntity<?> foo(@Valid @RequestBody FooDto dto) {
// ..
}
@PostMapping("/bar")
public ResponseEntity<?> bar(@Valid @RequestBody BarDto dto) {
// ..
}
}
实际的dtos包含多部分对象,定义为:
class FooDto {
@NotNull
private MultipartFile file;
@Size(min 2, max 40)
private String name;
}
当然BarDto 也是如此。
目前,最大文件大小在 Spring 属性中全局定义为:
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
在理想情况下,我想从属性中控制每个单独的 dto 最大文件大小,例如如:
foo-dto.max-size=10MB
bar-dto.max-size=500MB
在不太理想的情况下,我想从 dto 类的内部控制大小,例如:
class BarDto {
@FileSize(max = '500MB') // <-- something like this
@NotNull
private MultipartFile file;
// ..
}
关于如何实现这一点的任何提示?是否存在与 Spring 兼容的文件验证注解?
【问题讨论】:
标签: java spring validation multipart dto