/
viktorphp
/
back-socket
Обзор
Документация
Войти
/
viktorphp
/
back-socket
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/utils/detectMimeType.ts
19 строк
963 B
Viktorphp84
release-25-01: make avatar transfer in chats
10 май 2025, 20:29
10 май 2025, 20:29
5f34f1e
Код
Авторство
О чём код?
export const detectMimeType = (buffer: Buffer<ArrayBuffer>): string => { // Создает новый массив из 8-битных целых чисел (байтов) из переданного буфера // и берет только первые 4 байта этого массива const arr = new Uint8Array(buffer).subarray(0, 4); // Преобразует Uint8Array в обычный массив JavaScript. // Преобразует каждый байт в шестнадцатеричную строку. // Объединяет все полученные шестнадцатеричные строки в одну const header = Array.from(arr) .map((byte) => byte.toString(16)) .join(''); // Signatures if (header.startsWith('ffd8ff')) return 'image/jpeg'; if (header.startsWith('89504e47')) return 'image/png'; if (header.startsWith('47494638')) return 'image/gif'; // Default return 'image/jpeg'; };