не могу правильно сформулировать, поэтому не знаю как гуглить. в общем есть форма загрузки файла. к примеру я выбрал файл, нажал загрузить и после перезагрузки внизу получил список ошибок. (имя неправильное, размер слишком большой и тд) естественно логично будет сразу заполнить все поля - чтобы пользователю не надо было печатать всё снова. но как заполнить поле загрузки файла, чтобы не надо было его снова выбирать? возможно ли это?
Он имеет ввиду путь на компьютере пользователя, которое он ввел в поле для заливки файла. Чтобы пользователю второй раз не пришлось снова выбирать файл на своем компе. Я не знаю как это сделать, но есть идея - сделать скрытый input, в котором продублировать VALUE поля с файлом.
если страница перезагружается сделать это для input'a нельзя. думай как выводить ошибки без перезагрузки страницы.
http://dklab.ru/lib/HTML_MetaForm/ Тут почитай. Я его юзаю в одном из проектов. Он такой тугой... Могу дать кусок кода загрузки файла, если понадобится
аякса там не будет. движок будет простой, без фич. так что хрен с ним, с путём. я думал - может можно.
В Jquery присутствует возможность выноса полного пути с диска до расширения файла( D:\xek\mafia.jpg) в поле, соответственно можно занести в куки и после этого выводить
Никак. Атрибут value доступен не более, чем для чтения. Загружать файлы через Ajax невозможно - все библиотеки, которые утверждают, что поддерживают загрузку через Ajax, используют сабмит формы в скрытый фрейм, при этом значения заполненных полей сохраняются.
Но это никак не поможет "восстановить путь к файлу в <input type=file". Операция "восстановления" состоит, условно говоря, из трех шагов: 1) Чтение значения. 2) Запоминание полученного на предыдущем шаге. 3) Повторной записи значения. JS, не обладающий chrome-привилегиями, не может изменить значение поля <input type="file"> на любое непустое. Если ты имел ввиду выводить значение через PHP: PHP: <?php echo '<form id="form"> <input type="file" value="'.antixss($_COOKIE['path']).'"> </form>'; ?> , то это тоже не получится - браузер просто его проигнорирует.