Фильтровать файлы в диалоге открытия HTML-файлов - PullRequest
3 голосов
/ 10 июля 2011

Я работаю с загрузкой файлов на сервер, используя HTML-тег:

<input type="file">

Когда я нажимаю на кнопку обзора, отображается диалоговое окно открытия файла.Могу ли я отфильтровать файлы, передав фильтр расширения в этот диалог?Как мы можем сделать в диалоге открытия файлов .Net Framework, передав такую ​​вещь как:

Text files *.txt|.txt

Используя этот фильтр, мы можем открывать только .txt файлы.Другие файлы не показываются пользователю.Есть ли опция для этого диалога?

Ответы [ 4 ]

3 голосов
/ 29 сентября 2013

Стандарт

На самом деле в HTML5 вы можете установить атрибут accept, так что теперь это возможно! Стандарт W3C гласит:

Атрибут accept может быть указан для предоставления агентам пользователя подсказки, какие типы файлов будут приняты.

Допустимые значения [ Полный список в Википедии ]

Просто передайте действительный MIME-тип атрибуту, например:

  • audio/*
  • video/*
    • video/ogg
  • image/*
    • image/jpg
    • image/bmp

Пример кода

<input type="file" accept="image/*">
2 голосов
/ 10 июля 2011

У меня вопрос, могу ли я отфильтровать файлы, передав фильтр расширения в этот диалог?

Нет, вы не можете сделать это с простым вводом type="file". Вы можете использовать некоторые элементы управления загрузкой Flash , которые позволяют вам достичь этого.

1 голос
/ 10 июля 2011

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

Чтобы редактировать диалоговое окно, я помню, что вы можете сделать это с помощью вспышки или Silverlightзагрузчики, такие как swfUpload.

0 голосов
/ 07 августа 2018

Вот фрагмент кода, который я придумал, когда мне нужно было отфильтровать некоторые типы файлов:

<input type="file" accept=".xls, .xlsx, .csv" placeholder="File to be upload" />

Атрибут Accept поддерживает несколько файлов, разделенных запятой.

...