Ограничение допустимых типов файлов

Часто вы не хотите, чтобы пользователь мог выбрать любой произвольный тип файла; вместо этого вы часто хотите, чтобы они выбирали файлы определенного типа или типов. Например, если ваш входной файл позволяет пользователям загружать изображение профиля, вы, вероятно, хотите, чтобы они выбирали веб-совместимые форматы изображений, такие как JPEG или PNG .

Допустимые типы файлов можно указать с помощью accept атрибута, который принимает разделенный запятыми список разрешенных расширений файлов или типов MIME. Некоторые примеры:

• accept="image/png"или accept=".png"— принимает файлы PNG.

• accept="image/png, image/jpeg"или accept=".png, .jpg, .jpeg"— принимать файлы PNG или JPEG.

• accept="image/*"— Принять любой файл с image/*типом MIME. (Многие мобильные устройства также позволяют пользователю делать снимки с помощью камеры, когда она используется.)

• accept=".doc,.docx,.xml,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document"— принимайте все, что является документом MS Word.

Это может выглядеть похоже, но если вы попытаетесь выбрать файл с помощью этого ввода, вы увидите, что средство выбора файлов позволяет выбирать только типы файлов, указанные в accept значении (точный интерфейс различается в разных браузерах и операционных системах).

Атрибут accept не проверяет типы выбранных файлов; он предоставляет подсказки для браузеров, чтобы помочь пользователям выбрать правильные типы файлов. Пользователи по-прежнему могут (в большинстве случаев) переключать параметр в средстве выбора файлов, что позволяет переопределить это и выбрать любой файл, который они хотят, а затем выбрать неправильные типы файлов.

По этой причине вы должны убедиться, что accept атрибут поддерживается соответствующей проверкой на стороне сервера