簡體   English   中英

Spring:DTO 文件大小驗證

[英]Spring: DTO file size validation

考慮兩個 controller 端點方法:

@RestController
public class MyController {

  @PostMapping("/foo")
  public ResponseEntity<?> foo(@Valid @RequestBody FooDto dto) {
    // ..
  }

  @PostMapping("/bar")
  public ResponseEntity<?> bar(@Valid @RequestBody BarDto dto) {
    // ..
  }
}

實際 dto 包含多部分 object,定義為:

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 max 文件大小,例如:

foo-dto.max-size=10MB
bar-dto.max-size=500MB

在一個不太理想的情況下,我想從 dto 類的內部控制大小,例如:

class BarDto {

  @FileSize(max = '500MB') // <-- something like this
  @NotNull
  private MultipartFile file;

  // ..
}

關於如何實現這一目標的任何提示? 是否存在與 Spring 兼容的文件驗證注釋?

您可以通過implementing ConstraintValidator<SizeConstraint, String>創建自己的注釋,例如SizeConstraintValidator 在那里您可以驗證任何參數,包括 MultiPartFile 的大小

在這里查看更多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM