Spring MVC 如果有人上传了一个文件,我该如何验证

kh212irz  于 6个月前  发布在  Spring
关注(0)|答案(3)|浏览(54)

我收到这个错误信息。
javax.validation.UnexpectedTypeException:HV000030:找不到类型:byte[]的验证器。
代码

@NotBlank(message = DocumentForm.NOT_BLANK_MESSAGE)
private byte[] file;

字符串
如果有人上传了一个文件,我该如何验证

8dtrkrch

8dtrkrch1#

@NotBlank用于字符串。它也不是标准的一部分。你可能想使用@NotNull。它只检查文件是否在那里,但是,如果它是空的。如果有必要,你也可以使用@Size(min = 1)

ldxq2e6h

ldxq2e6h2#

我不知道字节数组有什么注解,但是,你可以实现你自己的验证器,没有太多的麻烦。
比如说:

public class ModelWithFileFieldValidator implements Validator {

    public boolean supports(Class clazz) {
        return ModelWithFileField.class.equals(clazz);
    }

    public void validate(Object obj, Errors e) {
        byte[] field = ((ModelWithFileField)obj).getBytes();
        if (field == null || field.length == 0) {
            e.rejectValue("file", "empty");
        }
    }
}

字符串

wkyowqbh

wkyowqbh3#

它可以通过使用@NotEmpty来完成。它是@ NotEmpty和size/length > 0的组合
@NotEmpty = @ Notempty && size/length > 0

@NotEmpty(message = DocumentForm.NOT_BLANK_MESSAGE)
private byte[] file;

字符串
https://www.baeldung.com/java-bean-validation-not-null-empty-blank

相关问题