我有一个程序,该程序可以上传文件,然后验证其名称格式是否正确并将其保存到数据库。
在我的主控制器中,我使用@InitBinder进行验证。
@InitBinder("uploadFileForm")
protected void initBinderUploadForm(WebDataBinder binder) {
binder.setValidator(fileNameFormatValidator);
}
在我的验证器方法中,我使用以下代码片段:
static void validateFileName(String fileUploadKey, MultipartFile file, Errors errors) {
Matcher validFilenameMatcher = VALID_FILE_NAME.matcher(file.getOriginalFilename());
if (!validFilenameMatcher.matches()) {
errors.rejectValue(fileUploadKey, null, null, SOME_REGEX);
}
}
我想做的是,我想格式化文件名(例如替换文件名中的某些字符),然后使用验证器类。因此,我需要在验证之前更改文件名。
在使用 @InitBinder 验证格式之前,如何实现文件名的编辑?
编辑:没人回答?还是这个问题不清楚?
答案 0 :(得分:1)
为什么不像添加验证器那样使用WebDataBinder
的{{3}}?
@InitBinder("uploadFileForm")
protected void initBinderUploadForm(WebDataBinder binder) {
binder.addCustomFormatter(fileNameFormatter);
binder.setValidator(fileNameFormatValidator);
}