Crediting @ james-kleeh для this head start;
Но я смог получить эту работу на Grails 4.0.0.M2 только тогда, когда расширил реализацию StandardServletMultipartResolver
, что и являетсяиспользуется по умолчанию.Затем пределы maxFileSize продолжают разрешаться из config (yaml).
public class MyMultipartResolver extends StandardServletMultipartResolver {
static final String FILE_SIZE_EXCEEDED_ERROR = "fileSizeExceeded"
public MultipartHttpServletRequest resolveMultipart(HttpServletRequest request) {
try {
return super.resolveMultipart(request)
} catch (MaxUploadSizeExceededException e) {
request.setAttribute(FILE_SIZE_EXCEEDED_ERROR, true)
return new DefaultMultipartHttpServletRequest(request, new LinkedMultiValueMap<String, MultipartFile>(), new LinkedHashMap<String, String[]>(), new LinkedHashMap<String, String>());
}
}
}
Со следующим в resources.groovy;
// catch exception when max file size is exceeded
multipartResolver(MyMultipartResolver)
Необходимо впоследствии проверить наличие FILE_SIZE_EXCEEDED_ERROR атрибут в контроллере и обрабатывать соответственно.