获取 MultipartFile 上传文件的数量

Get MultipartFile amount of uploaded files

我有一个方法可以使用 MultipartFile 处理 POST 文件请求。

@PostMapping(value = "/payment-files", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) 
public PaymentFileStatus postPaymentFile(
         @RequestParam("paymentFile") MultipartFile file,
) {
    byte[] fileBytes;
    try {
        fileBytes = file.getBytes();
    } catch (IOException e) {
        throw new PublicException(MESSAGE_NOT_READABLE, e);
    }

    return foo(fileBytes);
}

如果上传了多个文件,我的任务是拒绝请求。我想知道我是否可以通过某种方式从 MultipartFile 对象中获取上传文件的数量?或者您有任何其他想法如何检查上传了多少文件?或者我应该使用 @PreAuthorize?或者验证应该在其他地方实施?谢谢!

试试这个。

传递数组中的多个 MultipartFile 文件。

@PostMapping(value = "/payment-files", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) 
public PaymentFileStatus postPaymentFile(
         @RequestParam("paymentFile") MultipartFile[] file
) {
    byte[] fileBytes;
    try {
        fileBytes = file.getBytes();
    } catch (IOException e) {
        throw new PublicException(MESSAGE_NOT_READABLE, e);
    }

    return foo(fileBytes);
}

参考:- Solution

@RequestParam("paymentFile") MultipartFile file,

改为 @RequestParam("paymentFile") List<MultipartFile> file, 之后就可以得到你上传的号码文件了