Это очень специфический вопрос. Я надеюсь, что здесь есть кто-то с хорошим знанием API FileUpload.
Если вы работали с этим API, вы должны знать, что, когда максимальный размер файла превышен, следующие элементы не могут быть прочитаны, поскольку выдается исключение FileSizeLimitExceededException и если вы попытаетесь еще раз вызвать метод hasNext()
для перехода к следующему элементу выдается IOException, поскольку входной поток закрыт, и вы пытаетесь прочитать его снова.
Этот сценарий очень плох, потому что следующие параметры не могут быть прочитаны. Supose эту форму:
<form action="..." method="post" enctype="multipart/form-data">
<input type="hidden" name="param1" value="foo"/>
<input type="file" name="myFile"/><br/>
<input type="hidden" name="param2" value="bar"/>
<input type="submit"/>
</form>
Теперь размер файла превышает максимальный. Результат:
"param1" читается.
«myFile» создает исключение FileSizeLimitExceededException.
"param2" не читается.
Я пытаюсь переписать часть API - без везения - потому что я хочу прочитать следующие пункты (в данном случае «param2»).
У кого-нибудь была такая же проблема? Как вы это исправили?
Спасибо.
РЕДАКТИРОВАТЬ: Ну, я реализовал решение, предложенное BalusC. На будущее:
FileUpload оболочка
Использование оболочки FileUpload
Если вы считаете, что этой обертке нужно что-то еще, просто скажите это. Я не принимаю это как реальное решение, потому что идеал - модифицировать и исправить сам API.