Функция wp_check_filetype() в WordPress используется для получения расширения и MIME типа файла на основе его имени или пути. Она играет важную роль в проверке того, допустим ли указанный файл для загрузки на сайт.
wp_check_filetype( string $filename, string[]|null $mimes = null ): array
Функция принимает два параметра:
$filename(строка, обязательно) — имя файла или его путь.$mimes(массив или null, опционально) — массив разрешенных MIME типов файлов, где ключом выступает расширение файла, а значением — MIME тип. Если не указано, по умолчанию используется результат функцииget_allowed_mime_types().
Функция возвращает массив с двумя значениями:
ext— расширение файла (например,'jpg'), илиfalse, если тип файла не совпадает ни с одним из разрешенных.type— MIME тип файла (например,'image/jpeg'), илиfalse, если тип файла не соответствует разрешенным.
Пример 1: Получение расширения и MIME типа файла
Самый базовый пример использования функции для получения расширения и MIME типа по имени файла:
$filetype = wp_check_filetype('example-image.jpg');
echo $filetype['ext']; // вывод: jpg
echo $filetype['type']; // вывод: image/jpeg
В данном примере функция извлекает расширение и MIME тип файла на основе его имени example-image.jpg.
Пример 2: Проверка файла на разрешенность
Можно использовать wp_check_filetype() для проверки, разрешен ли определенный файл к загрузке на сайт:
$filetype = wp_check_filetype('sample-image.png');
if ($filetype['ext']) {
echo 'Файл с расширением ' . $filetype['ext'] . ' разрешен для загрузки.';
} else {
echo 'Файл с расширением ' . $filetype['ext'] . ' запрещен для загрузки.';
}
Если тип файла не разрешен, то функция вернет false, и соответствующее сообщение будет выведено.
Пример 3: Указание конкретных MIME типов для проверки
Если вам нужно указать свой список допустимых MIME типов, это можно сделать, передав массив в качестве второго параметра:
$mimes = array(
'gif' => 'image/gif',
'png' => 'image/png',
'jpg|jpeg|jpe' => 'image/jpeg'
);
$file = 'sample-document.pdf';
$filetype = wp_check_filetype($file, $mimes);
if ($filetype['ext']) {
echo 'Файл с расширением ' . $filetype['ext'] . ' разрешен.';
} else {
echo 'Файл с расширением ' . $filetype['ext'] . ' запрещен.';
}
В данном примере мы явно указали, что разрешены только файлы с расширениями gif, png и jpg/jpeg. Поскольку sample-document.pdf не соответствует этим расширениям, результатом будет сообщение о запрете загрузки файла.
Возвращаемое значение
Функция возвращает массив с двумя элементами:
ext— строка с расширением файла илиfalse, если расширение не соответствует ни одному из разрешенных.type— строка с MIME типом файла илиfalse, если тип файла не соответствует разрешенным.
Пример возвращаемого массива:
array(
'ext' => 'jpg',
'type' => 'image/jpeg',
)
Если тип файла не разрешен, оба значения в массиве будут false:
array(
'ext' => false,
'type' => false,
)
Использование в других функциях
wp_check_filetype() часто используется в сочетании с функциями:
wp_check_filetype_and_ext()— для проверки и файла, и его расширения.wp_upload_bits()— для обработки загрузки файлов.
Заключение
Функция wp_check_filetype() — это мощный инструмент для проверки файлов, используемых в WordPress. Она позволяет гибко управлять разрешенными типами файлов на вашем сайте и обеспечивает безопасность загрузки, исключая возможность загрузки файлов неподдерживаемых форматов.