Подтвердить что ты не робот

Как получить каталог папки из HTML-типа ввода "файл" или любым другим способом?

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

Как я могу получить этот ввод, чтобы выбрать папку, а не файл, или есть другой способ сделать это?

4b9b3361

Ответ 1

Наткнулся на эту страницу, а затем выяснил, что это возможно только с помощью javascript (без плагинов, таких как ActiveX или Flash), но только в chrome:

https://plus.google.com/+AddyOsmani/posts/Dk5UhZ6zfF3

В основном, они добавили поддержку нового атрибута в элемент ввода файла "webkitdirectory". Вы можете использовать его следующим образом:

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

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

Когда вы выбираете каталог, файлы доступны через dom-объект для элемента управления (document.getElementById('ctrl')), так же, как и с несколькими атрибутами. Браузеры рекурсивно добавляют все файлы в выбранном каталоге в этот список.

Вы уже можете добавить атрибут каталога, если это будет стандартизировано в какой-то момент (не удалось найти информацию об этом)

Ответ 2

Вы, скорее всего, смотрите на использование элемента управления flash/silverlight/activeX. Элемент управления <input type="file" /> не обрабатывает это.

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

Имейте в виду, что веб-страницы предназначены для взаимодействия с серверами. Ничто о предоставлении локального каталога удаленному серверу не является "типичным" (сервер не может получить к нему доступ, так зачем его спрашивать?); однако файлы являются средством выборочной передачи информации.

Ответ 3

Хотя это старый вопрос, это может помочь кому-то.

Мы можем выбрать несколько файлов во время просмотра файла с помощью "нескольких"

<input type="file" name="datafile" size="40"  multiple>