Файл mimetype.php в Cotonti CMF

MIME (Multipurpose Internet Mail Extensions) типы позволяют серверам и браузерам правильно интерпретировать содержимое файлов на основе их формата, а не только по расширению.

Файл mimetype.php в Cotonti CMF играет ключевую роль в определении типа MIME для различных файлов, которые загружаются или обрабатываются на сайте. MIME (Multipurpose Internet Mail Extensions) типы позволяют серверам и браузерам правильно интерпретировать содержимое файлов на основе их формата, а не только по расширению. Это особенно важно для обработки медиафайлов, документов и архивов, так как они могут быть загружены в систему, и необходимо убедиться, что эти файлы соответствуют нужному типу.

Основное назначение файла и его место в системе Cotonti:

Файл mimetype.php предназначен для хранения массива, который связывает расширения файлов с их MIME типами и некоторыми проверками содержимого для их верификации. Этот файл находится в каталоге /datas/ — в месте, где хранятся данные, которые могут быть использованы движком для различных операций, связанных с загрузкой и обработкой файлов.

Взаимодействие файла внутри сайта:

Этот файл работает в связке с другими компонентами Cotonti CMF, которые занимаются загрузкой и обработкой файлов. Он предоставляет систему для определения типа файлов через их расширение и шаблоны, которые позволяют проверять содержимое файла на соответствие заявленному типу.

Примерный сценарий работы файла:

  1. Когда пользователь загружает файл, его расширение проверяется для определения MIME типа.
  2. С помощью данных из массива в mimetype.php, Cotonti может дополнительно проверить содержимое файла с использованием шаблонов (например, для аудио или видео файлов). Эти шаблоны могут быть строками или шестнадцатеричными паттернами, которые помогут убедиться, что файл не подделан или не поврежден.

Переменные, методы, функции, классы:

  • Переменная $mime_type: Массив $mime_type — это основной элемент, который связывает расширение файла с соответствующим MIME типом, шаблоном для поиска и прочими параметрами, как:
    • Тип файла (например, 'audio/mpeg' или 'application/zip').
    • Шаблон для поиска в содержимом файла, который будет использоваться для проверки, является ли файл действительно того типа, который он заявляет.
    • Байты, с которых начнется проверка содержимого файла.
    • Длина проверки.
    • Установлен ли флаг отключения (например, если проверка файла должна быть отключена).

Суть содержания кода:

Основная цель кода в mimetype.php заключается в создании и хранении правил для распознавания типов файлов. Для каждого типа файла, такого как архивы, изображения, аудио и видео, в массиве указывается:

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

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

Как владельцу сайта использовать этот файл:

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

Использование настроек этого файла в движке:

В движке Cotonti, настройки из файла mimetype.php могут использоваться для:

  1. Проверки загружаемых файлов на соответствие типу MIME с помощью шаблонов поиска.
  2. Управления загрузками файлов через панели администрирования, где могут быть установлены ограничения на типы файлов, которые могут быть загружены.
  3. Безопасности сайта, предотвращая загрузку вредоносных файлов, которые могли бы быть подделаны с неправильным расширением.

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

 

/**
 * MIMETYPE
 *
 * @package Cotonti
 * @copyright (c) Cotonti Team
 * @license https://github.com/Cotonti/Cotonti/blob/master/License.txt
 */

// Формат следующий
//$mime_type[1][2] = array(3, 4, 5, 6, 7, 8)
//1 - Расширение - Расширение файла
//2 - Порядок - Если несколько одинаковых расширений, то порядок выполнения (если не требуется конкретный порядок, оставьте пустым)
//3 - MIME тип - Ассоциированный MIME тип
//4 - Шаблон поиска - Шаблон для поиска
//5 - Является ли это шестнадцатеричным шаблоном? - Правда или ложь (0 или 1)
//6 - Начальный байт - Байты, с которых начинается проверка
//7 - Длина байта - Сколько байт проверять с начала
//8 - Отключено? - Правда или ложь (0 или 1)

Комментарий объясняет формат, в котором хранятся данные о MIME типах. Массив $mime_type используется для сопоставления файловых расширений с соответствующими MIME типами и дополнительной информацией, такой как шаблон для поиска в файле, проверка на шестнадцатеричный формат, стартовый байт для проверки, длина байта и состояние включения/выключения.

 

$mime_type['rar'][]		= array('application/x-rar', 'Rar!', '0', '0', '4', '0');  // Связывает расширение "rar" с MIME типом 'application/x-rar', с шаблоном поиска 'Rar!' в начале файла, не являясь шестнадцатеричным шаблоном, начиная с 4-го байта, без дополнительной длины проверки, не отключено
$mime_type['zip'][0]	= array('application/zip', '504B03041400', '1', '0', '6', '0');  // Связывает расширение "zip" с MIME типом 'application/zip', с шаблоном поиска '504B03041400' (шестнадцатеричный код), начиная с 6-го байта, не отключено
$mime_type['zip'][1]	= array('application/zip', '504B03040A00', '1', '0', '6', '0');  // Связывает расширение "zip" с другим вариантом шаблона поиска для MIME типа 'application/zip', снова начиная с 6-го байта, не отключено
$mime_type['gz'][]		= array('application/x-gzip', '1F8B0800', '1', '0', '4', '0');  // Связывает расширение "gz" с MIME типом 'application/x-gzip', с шаблоном поиска '1F8B0800' (шестнадцатеричный код), начиная с 4-го байта, не отключено
$mime_type['tar.gz'][]	= array('application/x-gzip', '1F8B0808', '1', '0', '4', '0');  // Связывает расширение "tar.gz" с MIME типом 'application/x-gzip', с другим шаблоном поиска для gzip формата, начиная с 4-го байта, не отключено
$mime_type['pdf'][1]	= array('application/pdf', '!<PDF>!', '0', '0', '7', '0');  // Связывает расширение "pdf" с MIME типом 'application/pdf', с шаблоном поиска '!<PDF>!' (независимый текстовый шаблон), начиная с 7-го байта, не отключено
$mime_type['pdf'][2]	= array('application/pdf', 'PDF', '0', '1', '3', '0');  // Связывает расширение "pdf" с другим шаблоном поиска 'PDF', начиная с 3-го байта, не отключено

Каждая строка в этом коде отвечает за настройку MIME типов для различных расширений файлов. Для каждого расширения указывается:

  1. MIME тип (например, 'application/pdf', 'application/zip', и т. д.).
  2. Шаблон поиска (обычно это строка или шестнадцатеричный код).
  3. Информация о том, является ли шаблон шестнадцатеричным.
  4. Стартовый байт для поиска шаблона.
  5. Длина байта для проверки.
  6. Флаг, указывающий, включен ли данный тип в систему (все установлены в '0', что означает, что они не отключены)

 

$mime_type['avi'][0]	= array('video/avi', 'AVI', '0', '8', '3', '0');  // Связывает расширение "avi" с MIME типом 'video/avi', с шаблоном поиска 'AVI', не являясь шестнадцатеричным шаблоном, начиная с 8-го байта, длина проверки — 3 байта, не отключено
$mime_type['avi'][1]	= array('video/avi', 'RIFF', '0', '0', '4', '0');  // Связывает расширение "avi" с другим шаблоном поиска 'RIFF' для MIME типа 'video/avi', начиная с 4-го байта, не отключено
$mime_type['qt'][0]		= array('video/quicktime', 'ftypqt', '0', '4', '6', '0');  // Связывает расширение "qt" с MIME типом 'video/quicktime', с шаблоном поиска 'ftypqt', не являясь шестнадцатеричным шаблоном, начиная с 4-го байта, длина проверки — 6 байтов, не отключено
$mime_type['qt'][1]		= array('video/quicktime', 'moov', '0', '24', '4', '0');  // Связывает расширение "qt" с шаблоном поиска 'moov' для MIME типа 'video/quicktime', начиная с 24-го байта, длина проверки — 4 байта, не отключено
$mime_type['mov'][0]	= array('video/quicktime', 'ftypqt', '0', '4', '6', '0');  // Связывает расширение "mov" с MIME типом 'video/quicktime', с шаблоном поиска 'ftypqt', не являясь шестнадцатеричным шаблоном, начиная с 4-го байта, длина проверки — 6 байтов, не отключено
$mime_type['mov'][1]	= array('video/quicktime', 'moov', '0', '24', '4', '0');  // Связывает расширение "mov" с шаблоном поиска 'moov' для MIME типа 'video/quicktime', начиная с 24-го байта, длина проверки — 4 байта, не отключено
$mime_type['mpg'][0]	= array('video/mpeg', '000001BA', '1', '0', '4', '0');  // Связывает расширение "mpg" с MIME типом 'video/mpeg', с шестнадцатеричным шаблоном поиска '000001BA', начиная с 4-го байта, не отключено
$mime_type['mpg'][1]	= array('video/mpeg', '000001B3', '1', '0', '4', '0');  // Связывает расширение "mpg" с другим шестнадцатеричным шаблоном поиска '000001B3' для MIME типа 'video/mpeg', начиная с 4-го байта, не отключено

Этот код продолжает связывать расширения файлов с MIME типами для различных форматов видео (avi, qt, mov, mpg) с их соответствующими шаблонами поиска. Для каждого расширения:

  1. Указывается MIME тип (например, 'video/avi', 'video/mpeg', и т. д.).
  2. Указывается шаблон поиска (обычно это строка или шестнадцатеричный код).
  3. Указывается, является ли шаблон шестнадцатеричным.
  4. Указывается, с какого байта начинать проверку шаблона.
  5. Указывается длина проверки шаблона в байтах.
  6. Флаг отключения установлен в '0', что означает, что этот MIME тип не отключен.

Каждое расширение связано с конкретным шаблоном, что позволяет системе правильно распознавать типы файлов, основываясь на их содержимом, а не только на расширении.

 
$mime_type['mpeg'][0]	= array('video/mpeg', '000001BA', '1', '0', '4', '0');  // Связывает расширение "mpeg" с MIME типом 'video/mpeg', с шестнадцатеричным шаблоном поиска '000001BA', начиная с 4-го байта, не отключено
$mime_type['mpeg'][1]	= array('video/mpeg', '000001B3', '1', '0', '4', '0');  // Связывает расширение "mpeg" с другим шестнадцатеричным шаблоном поиска '000001B3' для MIME типа 'video/mpeg', начиная с 4-го байта, не отключено
$mime_type['ogg'][]		= array('application/ogg', 'OggS', '0', '0', '4', '0');  // Связывает расширение "ogg" с MIME типом 'application/ogg', с шаблоном поиска 'OggS', не являясь шестнадцатеричным шаблоном, начиная с 4-го байта, не отключено
$mime_type['mp3'][]		= array('audio/mpeg', 'ID3', '0', '0', '3', '0');  // Связывает расширение "mp3" с MIME типом 'audio/mpeg', с шаблоном поиска 'ID3', не являясь шестнадцатеричным шаблоном, начиная с 3-го байта, не отключено
$mime_type['wav'][0]	= array('audio/x-wav', 'WAVEfmt', '0', '8', '7', '0');  // Связывает расширение "wav" с MIME типом 'audio/x-wav', с шаблоном поиска 'WAVEfmt', не являясь шестнадцатеричным шаблоном, начиная с 8-го байта, длина проверки — 7 байтов, не отключено
$mime_type['wav'][1]	= array('audio/x-wav', 'RIFF', '0', '0', '4', '0');  // Связывает расширение "wav" с MIME типом 'audio/x-wav', с шаблоном поиска 'RIFF', не являясь шестнадцатеричным шаблоном, начиная с 4-го байта, не отключено
$mime_type['wmv'][]		= array('video/x-ms-wmv', '3026B2758E66CF11A6D900AA0062CE6C', '1', '0', '16', '0');  // Связывает расширение "wmv" с MIME типом 'video/x-ms-wmv', с шестнадцатеричным шаблоном поиска '3026B2758E66CF11A6D900AA0062CE6C', начиная с 16-го байта, не отключено

Этот код продолжает связывать расширения файлов с MIME типами для различных форматов (mpeg, ogg, mp3, wav, wmv) с их соответствующими шаблонами поиска. Как и в предыдущих строках, каждый элемент массива связан с:

  1. MIME типом (например, 'video/mpeg', 'audio/mpeg', и т. д.).
  2. Шаблоном поиска, который является строкой или шестнадцатеричным кодом.
  3. Указанием, является ли шаблон шестнадцатеричным (значение '1' или '0').
  4. Информацией о начале проверки (с какого байта).
  5. Длиной проверки в байтах.
  6. Установлением флага отключения, который в данном случае всегда равен '0' (не отключен).

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

 

 

8 минут чтения Sodium Carbonate

Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Автор контента

webitproff

Оффлайн

Sodium Carbonate

Последняя авторизация: 20.07.2026 00:04

  • Страница размещена: 30.01.2025 23:44
  • Последнее обновление: 30.01.2025 23:44

Похожие страницы

Файл DetectLostConnectionTrait.php в Cotonti CMF
1 Файл DetectLostConnectionTrait.php в движке Cotonti CMF реализует трейд, который содержит методы для обнаружения потери
Файл BaseController.php в Cotonti CMF
2 Назначение класса BaseController в Cotonti CMF Класс BaseController является базовым контроллером в системе Cotonti
Файл BaseAction.php в Cotonti CMF
3 Назначение класса BaseAction в Cotonti CMF: Класс BaseAction представляет собой абстрактный базовый класс, служащий
Файл IndexAction.php в Cotonti CMF
4 Назначение и описание класса IndexAction в Cotonti Основное назначение файла и его место в системе Файл
Файл admin.cache.disk.php в Cotonti CMF
5 Файл admin.cache.disk.php в движке Cotonti CMF является частью административной панели, предназначенной для управления