Итак, у меня есть базовый ввод формы с типом "file"
, однако я хочу, чтобы пользователь мог выбрать местоположение папки, а не файл.
Как я могу получить этот ввод, чтобы выбрать папку, а не файл, или есть другой способ сделать это?
Итак, у меня есть базовый ввод формы с типом "file"
, однако я хочу, чтобы пользователь мог выбрать местоположение папки, а не файл.
Как я могу получить этот ввод, чтобы выбрать папку, а не файл, или есть другой способ сделать это?
Наткнулся на эту страницу, а затем выяснил, что это возможно только с помощью javascript (без плагинов, таких как ActiveX или Flash), но только в chrome:
https://plus.google.com/+AddyOsmani/posts/Dk5UhZ6zfF3
В основном, они добавили поддержку нового атрибута в элемент ввода файла "webkitdirectory". Вы можете использовать его следующим образом:
<input type="file" id="ctrl" webkitdirectory directory multiple/>
Он позволяет вам выбирать каталоги. Множественный атрибут - хороший откат для браузеров, которые поддерживают множественный выбор файлов, но не выбор каталога.
Когда вы выбираете каталог, файлы доступны через dom-объект для элемента управления (document.getElementById('ctrl')), так же, как и с несколькими атрибутами. Браузеры рекурсивно добавляют все файлы в выбранном каталоге в этот список.
Вы уже можете добавить атрибут каталога, если это будет стандартизировано в какой-то момент (не удалось найти информацию об этом)
Вы, скорее всего, смотрите на использование элемента управления flash/silverlight/activeX. Элемент управления <input type="file" />
не обрабатывает это.
Если вы не возражаете, чтобы пользователь выбирал файл в качестве средства для получения его каталога, вы можете привязываться к этому элементу управления change
, а затем отделять часть имени файла и сохранять путь где-то - но это касается насколько он хорош.
Имейте в виду, что веб-страницы предназначены для взаимодействия с серверами. Ничто о предоставлении локального каталога удаленному серверу не является "типичным" (сервер не может получить к нему доступ, так зачем его спрашивать?); однако файлы являются средством выборочной передачи информации.
Хотя это старый вопрос, это может помочь кому-то.
Мы можем выбрать несколько файлов во время просмотра файла с помощью "нескольких"
<input type="file" name="datafile" size="40" multiple>