Можно ли заново заполнить поле формы выбора файла тем, что ранее выбрал пользователь - PullRequest
1 голос
/ 13 января 2011

У меня есть форма с полем выбора файла. Если пользователь отправляет форму, но есть проблема с одним из полей, было бы неплохо, чтобы поле выбора файла было «заполнено» предыдущим выбором. Я вполне уверен, что из-за политик безопасности браузера это невозможно, но, возможно, есть обходной путь, о котором я не знаю.

Ответы [ 2 ]

4 голосов
/ 13 января 2011

Поля <input type="file" ... /> по сути неприкасаемы Javascript и даже CSS.Очень немногие из его свойств доступны для чтения или записи, и только некоторые его части могут быть стилевыми.

В большинстве случаев вы можете сделать javascript:history.go(-1) и надеяться, что форма все еще кэшируется, но тогда вы потеряете способность отображать ошибку.надежные сообщения.

Любая возможность в любом контексте, которая позволяет вводить произвольные данные (например, путь к файлу загрузки), будет подорвана, поэтому она жестко блокируется.

2 голосов
/ 13 января 2011

Это невозможно сделать из соображений безопасности.Если JS или HTML могли бы установить путь к файлу, любая веб-страница могла бы создать кучу невидимых окон загрузки файлов и буквально пиявку файлов с вашего жесткого диска.Без вашего ведома.

РЕДАКТИРОВАТЬ: На самом деле, Firefox имеет возможность включить это в about: config.Но он по умолчанию отключен, и другие браузеры AFAIK не имеют этой опции, поэтому она не имеет значения.

Кроме того, вы можете достичь этого с помощью Flash - он может создавать более сложные окна загрузки, чем обычныйHTML / JS, но я не уверен, есть ли у него такое ограничение или нет.Вы можете проверить SWFUpload .

...