Как загрузить два разных файла и проверить их тип и размер в Struts2?

У меня есть форма на jsp, и у нее есть два входных файла: один для загрузки изображения профиля и один для загрузки файла PDF.

Я хочу подтвердить это

  • входное изображение должно принимать только .jpeg или .png, а его размер не должен превышать 200 КБ.
  • Ввод PDF должен быть только в формате PDF, а размер не должен превышать 2 МБ.

Как разместить разные проверки для разных файлов в одной и той же форме?


person Hemant Chhonkar    schedule 12.02.2016    source источник
comment
Вы имеете в виду расширение файла или содержимое?   -  person Roman C    schedule 12.02.2016


Ответы (1)


Ограничения файлов связаны с запросом. Если вам нужно применить две разные настройки, вам потребуются два разных запроса (следовательно, две формы), что, очевидно, не является желаемым решением.

Тогда вы можете легко преодолеть это, применив:

  • в struts.xml тип файла (типы изображений, pdf)
  • в struts.xml ограничение 2 МБ (большее из двух)
  • в действии validate(), или при проверке XML, или при проверке аннотаций элемент управления типа
    "если файл имеет тип изображения и размер > 200 КБ, возникает ошибка".

ИЗМЕНИТЬ:

Кстати, я сделал это, написав свой собственный перехватчик.

Конечно, если вам нужно применить эту логику ко многим действиям, то пользовательский Interceptor поможет вам DRY.

Просто убедитесь, что вы поняли, как работает проверка, и добавьте ошибки поля из своего перехватчика на случай, если он выйдет из строя, чтобы результат INPUT был автоматически возвращается перехватчиком Worflow.

person Andrea Ligios    schedule 12.02.2016
comment
Спасибо, Андреа... я знаю, что могу написать свою пользовательскую бизнес-логику, чтобы проверить их... но я подумал, может ли каким-то образом перехватчик загрузки файлов это сделать. - person Hemant Chhonkar; 12.02.2016
comment
Кстати, я сделал это, написав свой собственный перехватчик. - person Hemant Chhonkar; 12.02.2016