JavaScript Blob.type — тип MIME файлу
Властивість type повертає тип MIME: 'image/png', 'text/csv', 'application/pdf'.
Загальний опис
Для файлу, обраного користувачем, браузер визначає тип за розширенням — а не за вмістом. Тобто вірус, перейменований на .png, чесно скажеться зображенням.
Звідси головне правило: це підказка для інтерфейсу, а не перевірка безпеки. Показати попередження «оберіть зображення» — так. Пускати файл на сервер, повіривши цьому рядку, — ні. Перевіряти тип мусить сервер, за вмістом.
Якщо тип невідомий, властивість дає порожній рядок.
автор: NagarD
- Нотатка
-
автор: NagarDtypeбереться з розширення, а не з вмісту. Довіряти йому в питаннях безпеки не можна — справжній тип знає лише сервер, прочитавши сигнатуру.
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| type | 20+ | 13+ | 8+ | 12.1+ | 12+ | 10+ |
| Переглядач | ||||
|---|---|---|---|---|
| type | 4.4+ | yes | yes | 8+ |
Приклади
+ запропонувати свій приклад у пісочниці
Для інтерфейсу — так; для безпеки — ні.
const file = new File(['вміст'], 'малюнок.png', { type: 'image/png' });
console.log(file.type); // 'image/png'
// для ІНТЕРФЕЙСУ — нормально
if (!file.type.startsWith('image/')) {
console.log('Оберіть, будь ласка, зображення');
}
// але це не захист: перейменований вірус.exe теж скаже image/png —
// справжню перевірку робить сервер за сигнатурою вмісту
Коментарі
Коментарів ще немає — будьте першим!