Мы собрали методы фильтрации тега input type file с примерами!
Атрибут accept
в теге <input type="file" accept="image/*">
– это один из инструментов веб-разработки, который позволяет фильтровать файлы, которые пользователь может выбирать для загрузки на сервер.
База атрибута accept
в <input type="file">
:
Атрибут accept
устанавливает фильтр на типы файлов в окне выбора файла. Можно установить разрешение файлов или их MIME-типы, например: image/jpeg
. Рассмотрим несколько примеров использования этого атрибута.
Как разрешить только один тип файлов?
Разрешить выбор только файлов PNG в file input:
<form action="" method="post" enctype="multipart/form-data">
<label>Файл PNG:</label>
<input type="file" name="file" accept=".png">
</form>
Как выбирать несколько расширений?
Выбор файлов с расширениями JPG, JPEG, PNG:
<form action="" method="post" enctype="multipart/form-data">
<label>Файл JPG или PNG:</label>
<input type="file" name="file" accept=".jpg,.jpeg,.png">
</form>
Как ограничить по MIME-типу в file input?
Так как у файлов с одним MIME-типом может быть множество расширений, проще сделать фильтровку по нему, например text/plain
:
<form action="" method="post" enctype="multipart/form-data">
<label>Текстовые файлы:</label>
<input type="file" name="file" accept="text/plain">
</form>
Как фильтровать по группе файлов в input file?
HTML5 ввел новые атрибуты для различных групп файлов: audio/*
, video/*
, image/*
. Разрешим выбирать любые изображения в file input:
<form action="" method="post" enctype="multipart/form-data">
<label>Любые изображение:</label>
<input type="file" name="file" accept="image/*">
</form>
Какая поддержка в браузерах accept?
При использовании атрибута accept
важно учитывать его поддержку в различных браузерах. Большинство современных браузеров поддерживают этот атрибут. Узнать какие браузеры поддерживают атрибут accept в input file можно в табличке ниже.
Атрибут accept
удобен для управления типами файлов, которые пользователь может выбрать. Создавайте удобные интерфейсы для загрузки файлов, без танцов с бубном jquery/javascript.
Какие типы файлов можно указать в атрибуте accept?
В атрибуте accept
можно указывать расширения файлов, MIME-типы или группы файлов, в зависимости от потребностей.
- Расширение: .jpg,
MIME-тип: image/jpeg - Расширение: .png,
MIME-тип: image/png - Расширение: .gif,
MIME-тип: image/gif - Расширение: .pdf,
MIME-тип: application/pdf - Расширение: .doc, .docx,
MIME-тип: application/msword,
application/vnd.openxmlformats-officedocument.wordprocessingml.document - Расширение: .xls, .xlsx,
MIME-тип: application/vnd.ms-excel,
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - Расширение: .ppt, .pptx,
MIME-тип: application/vnd.ms-powerpoint,
application/vnd.openxmlformats-officedocument.presentationml.presentation - Расширение: .txt,
MIME-тип: text/plain - Расширение: .csv,
MIME-тип: text/csv - Расширение: .mp3,
MIME-тип: audio/mpeg - Расширение: .mp4,
MIME-тип: video/mp4 - Расширение: .zip,
MIME-тип: application/zip - Расширение: .tar,
MIME-тип: application/x-tar - Расширение: .json,
MIME-тип: application/json - Расширение: .html, .htm,
MIME-тип: text/html - Расширение: .svg,
MIME-тип: image/svg+xml - Расширение: .xml,
MIME-тип: application/xml
Могу ли я указать несколько MIME-типов в атрибуте accept?
Да, можно указывать несколько MIME-типов, разделяя их запятыми, например: accept="audio/mp3, video/mp4"
.
Могу ли я использовать атрибут accept для ограничения размера файлов?
Нет, атрибут accept
не предназначен для ограничения размера файлов. Для этого следует использовать другие методы, такие как атрибуты minlength
и maxlength
.