Сохранение значения в поле <input type = "file"> при нажатии кнопки отправки

У меня есть поле <input type="file" > вместе с другими текстовыми полями в форме. Когда я пытаюсь загрузить любые файлы с помощью кнопки обзора, а затем нажмите кнопку отправки, значение в поле ввода типа = "файл" исчезнет , Я бы хотел, чтобы просматриваемое значение оставалось в поле <input type="file" > если ошибки присутствуют в других полях, есть ли способ сохранить значение, которое просматривается, и оставить его в <input type="file" > при нажатии кнопки отправки,

 <form action="form.php" method="post" enctype= multipart/form-data> <input type="file" value="$file" name="file"/> <input type="text" value="$line" name="line"> <input type="submit" name="btnsubmit"> </form> if($_POST['btnsubmit']) { $line =$_POST['line']; $file =$_FILES['file'] ['name']; if($line) { //do something //conditions for file check here } else //error } 

Это невозможно сделать. Защита браузера запрещает вам заполнять поле ввода файлов, чтобы веб-сайты не могли украсть личные файлы по своему усмотрению без разрешения пользователя сначала (нажав «Обзор …» и выбрав файл).

РЕДАКТИРОВАТЬ: Это невозможно сделать изначально – но вы можете попытаться использовать CSS-мастер, чтобы отобразить ранее выбранное имя файла, например, рядом с полем ввода файла, чтобы намекнуть на пользователя. Если вы хотите попробовать и действительно круто, вы также можете попытаться наложить область отображения текстового поля на собственный файл браузера с другим div, в котором записано предыдущее имя файла. Но это не позволит щелкнуть по области ввода, и поэтому пользователь недружелюбен. Слишком много работы, небольшая награда.

Это не разрешено устанавливать с помощью любого сценария для целей безопасности, реализованного поставщиками браузеров в качестве ввода файлов как только для readonly .

Есть один способ сделать это. Отправьте данные формы для проверки с использованием метода отправки AJAX, чтобы пользователь никогда не покидал страницу или не «подавал» форму. Таким образом, вы можете проверить результат на стороне сервера, но пользователь по-прежнему имеет все свои значения, включая файлы.

Как уже упоминалось, input[type=file] доступен только для чтения. Подтверждая свой ввод на стороне клиента, вы можете предотвратить отправку, если все поля не действительны. … и, в большинстве случаев, он обеспечивает намного лучший пользовательский интерфейс!

Проверьте jquery.validation или какой-либо другой плагин проверки для вашей любимой структуры или напишите ее самостоятельно. Имейте в виду, что вы также должны проверить на стороне сервера.

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

http://hayageek.com/examples/jquery/ajax-form-submit/index.php?tab=2 😉 incearca asta .. merge de minune :)))