考慮兩種控制器端點方法:
@RestController
public class MyController {
@PostMapping("/foo")
public ResponseEntity<?> foo(@Valid @RequestBody FooDto dto) {
// ..
}
@PostMapping("/bar")
public ResponseEntity<?> bar(@Valid @RequestBody BarDto dto) {
// ..
}
}
實際的 dtos 包含 multipart 物件,并定義為:
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 兼容的用于檔案驗證的現有注釋?
uj5u.com熱心網友回復:
您可以創建自己的注釋,例如SizeConstraint和Validatorby implementing ConstraintValidator<SizeConstraint, String>。在那里您可以驗證任何引數,包括 MultiPartFile 的大小
在這里看到更多
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/397656.html
