Можете ли вы повторно заполнить входные данные файла после неудачной отправки формы с помощью PHP или JavaScript?


Итак, вот сценарий:

Пользователю предоставляется форма, содержащая входные данные файла. Пользователь отправляет форму. Форма не проходит проверку/проверку по той или иной причине. Пользователю представляется форма с выделенными ошибками. Входные данные файла теперь пусты.

Вопрос:

Можно ли повторно заполнить входные данные файлов путями к файлам, первоначально выбранным пользователем. Решение PHP было бы идеальным, но я также открыт и для решений JavaScript.

Author: diggersworld, 2011-07-27

2 answers

Я думаю, что короткий ответ здесь - нет. Вы не можете повторно заполнить поля для загрузки файлов. Однако вы можете обойти это.

Если файл был выбран и форма отправлена, значит, вы уже получили файл. Что вы можете сделать, так это сохранить ссылку на файл на диске, поместить ее в скрытое поле и показать сообщение, указывающее пользователю, что у вас все еще есть загруженный файл, поэтому его не нужно заменять/повторно загружать. Когда ваша форма будет отправлена снова без файла, вы можете проверьте значение скрытого поля и используйте его, чтобы получить локальную копию файла, который они загрузили в своей последней попытке.

Другой способ сделать это - либо отправить форму через ajax (используя либо flash, либо метод iframe для загрузки файла), либо сначала выполнить вызов ajax для проверки формы, а затем отправлять только как обычно, если это допустимо (таким образом, перезагрузка формы не выполняется, данные поля загрузки файла не теряются).

 38
Author: darkliquid, 2011-07-27 10:11:10

Я решил эту проблему, разрешив пользователю выбрать файл загрузки в качестве последнего поля перед отправкой формы ^^

 1
Author: Somwang Souksavatd, 2017-08-14 18:32:01