У меня есть веб-сайт Spring MVC с двумя разными страницами, которые имеют разные формы для загрузки разных файлов. У одного из них должно быть ограничение на 2 МБ, а у другого должно быть ограничение на 50 МБ.
Прямо сейчас, у меня есть это ограничение в моем app-config.xml:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- one of the properties available; the maximum file size in bytes (2097152 B = 2 MB) -->
<property name="maxUploadSize" value="2097152 "/>
</bean>
И я мог бы решить исключение maxUploadSize в моем основном контроллере следующим образом:
@Override
public @ResponseBody
ModelAndView resolveException(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception exception) {
ModelAndView modelview = new ModelAndView();
String errorMessage = "";
if (exception instanceof MaxUploadSizeExceededException) {
errorMessage = String.format("El tamaño del fichero debe ser menor de %s", UnitConverter.convertBytesToStringRepresentation(((MaxUploadSizeExceededException) exception)
.getMaxUploadSize()));
} else {
errorMessage = "Unexpected error: " + exception.getMessage();
}
saveError(arg0, errorMessage);
modelview = new ModelAndView();
modelview.setViewName("redirect:" + getRedirectUrl());
}
return modelview;
}
Но это, очевидно, контролирует только ограничение 2 МБ. Как я могу сделать ограничение для 20 МБ одного? Я пробовал это решение: qaru.site/info/687536/..., который обновляет ограничение во время выполнения. Однако это обновляет его для каждой сессии и каждого контроллера. Итак, если один пользователь загружает файл для первой формы, другой, использующий загрузку во второй форме, должен иметь ограничение первого...
Любая помощь? спасибо