Представьте себе эту простую форму для загрузки файла:
<form action="upload" enctype="multipart/form-data">
<input type="text" name="name"/>
<input type="file" name="file"/>
<input type="submit"/>
</form>
Если при отправке формы возникает ошибка (не удается скопировать файл, имя неверное ...), она должна вернуться кта же страница, но выбранный файл будет потерян.Большая форма с несколькими полями, которые должны быть проверены на стороне сервера, может быть очень раздражающей, если пользователю приходится каждый раз выбирать файлы.
Подумав об этом, я нашел пару возможных решений:
Отправьте форму как запрос ajax, затем перейдите на следующую страницу, только если проверка правильна.Проблема в том, что я должен реализовать что-то, чтобы поместить каждую ошибку валидации на место, а не использовать функции MVC (в моем случае теги Spring MVC form.)Если есть ошибка, отправьте страницу с «history.back ()» в javascript.Мой файл снова будет там, но у меня нет простого способа показать сообщения проверки.
Я думаю, что оба решения очень неуклюжи.Но выбор файлов каждый раз, когда возникает ошибка проверки, тоже не является хорошим решением.
Что вы думаете?Какое решение лучше?Есть ли хороший (желательно без javascript)?
Спасибо.
Примечание: Я использую Spring MVC 3