Выбор каталога на странице HTML - PullRequest
53 голосов
/ 11 мая 2010

Как я могу создать средство выбора каталогов на html-странице.
Если я использую элемент входного файла, я могу выбрать только файл, но мне нужно выбрать каталог.
Мне нужно сделать это, потому что пользователь должен выбрать правильный путь внутри своего компьютера.
Любые решения?

Ответы [ 5 ]

61 голосов
/ 24 сентября 2014

Попробуйте, я думаю, это будет работать для вас:

<input type="file" webkitdirectory directory multiple/>

Демонстрацию этого можно найти на https://plus.google.com/+AddyOsmani/posts/Dk5UhZ6zfF3, и если вам нужна дополнительная информация, вы можете найти ее здесь .

28 голосов
/ 11 мая 2010

Не может быть сделано в чистом HTML / JavaScript по соображениям безопасности.

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

Возможно, вы сможете собрать что-нибудь вместе, используя Java или Flash (например, используя SWFUpload в качестве основы), но это много работы и приносит дополнительные проблемы совместимости.

Еще одна мысль - открыть iframe, показывающий диск пользователя C: (или любой другой), но даже если это возможно в настоящее время (может быть заблокировано по соображениям безопасности, не пытались в течение длительного времени), это будет невозможно для вашего веб-сайта для связи с iframe (опять же из соображений безопасности).

Для чего вам это нужно?

3 голосов
/ 09 февраля 2016

В случае, если вы являетесь сервером и пользователем (например, вы создаете приложение, которое работает через браузер, и вам нужно выбрать папку), попробуйте вызвать JFileChooser с сервера, когда какая-либо кнопка нажата в браузере.

JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle("select folder");
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setAcceptAllFileFilterUsed(false);

Этот код от здесь

2 голосов
/ 11 мая 2010

Сценарии неизбежны.

Это не предусмотрено из-за угрозы безопасности. <input type='file' /> ближе всего, но не то, что вы ищете.

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

Если ОС Windows, вы можете использовать VB-скрипты для доступа к файлам управления ядром и поиска папки.

1 голос
/ 12 мая 2017

Я сделал работу вокруг. У меня было скрытое текстовое поле для хранения значения. Затем на form_onsubmit, Я скопировал значение пути, за исключением имени файла, в скрытую папку. Затем установите для поля fileInput значение "". Таким образом, файл не загружается. Я не помню события элемента управления fileUpload. Может быть, обмен. Прошло много времени. Если есть значение, я анализирую имя файла и помещаю папку обратно в коробку. Конечно, вы должны проверить этот файл как действительный файл. Это даст вам папку клиентской рабочей станции.
Однако, если вы хотите отразить пути сервера, это требует совершенно другого подхода к кодированию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...