wp_check_filetype()
Отримує розширення та MIME тип файлу за переданим ім’ям (шляхом) файлу. Використовується для перевірки чи дозволено вказаний тип файлу для завантаження на сайт.
У другому параметрі можна вказати типи файлів. За умовчанням вони виходять функцією get_allowed_mime_types() .
1 раз – 0.0011148 сек
(дуже повільно) | 50000 разів – 1.85 сек
(швидко) |
PHP 7.3.12, WP 5.4.1
(дуже повільно) | 50000 разів – 1.85 сек
(швидко) |
PHP 7.3.12, WP 5.4.1
Хуків немає.
Повертає
Массив. Дані про тип файлу:
array( 'ext' => 'png', // розширення (пр. 'jpg') 'type' => 'image/png', // mime тип (пр 'image/jpeg') )
Якщо тип файлу не дозволяється, кожен елемент масиву міститиме false.
Використання
wp_check_filetype( $filename, $mimes )
- $filename
(рядок) (обов’язковий) - Абсолютний шлях до файлу:
www/example.com/wp-content/uploads/file.png - $mimes
(масив) - Масив назв дозволених розширень та типів файлів. За промовчанням значення функції
get_allowed_mime_types() .
Типово: null
Приклади
#1 Демонстрація роботи функції
$filetype = wp_check_filetype( dirname(__FILE__) . '/image.jpg' ); echo $filetype['ext']; // виведе: jpg echo $filetype['type']; // виведе: image/jpeg
#2 Перевіримо чи дозволено файл на сайті
Для перевірки отримаємо дані файлу:
$filetype = wp_check_filetype('image.jpg');
if( $filetype['ext'] )
echo 'Файл із розширенням'. $filetype['ext'] .' дозволено';
else
echo 'Файл із розширенням'. $filetype['ext'] .' заборонено';#3 Вказування дозволених типів файлів та перевірка
Вкажемо дозволені типи файлів у масиві та перевіримо файл:
$mimes = array( 'gif' => 'image/gif', 'png' => 'image/png', 'jpg|jpeg|jpe' => 'image/jpeg' ); $file = 'image.bmp'; $filetype = wp_check_filetype( $file, $mimes ); if( $filetype['ext'] ) echo 'дозволений'; else echo 'заборонено';
список змін
| З версії 2.0.4 | Введено. |
Код wp_check_filetype() wp check filetype WP 6.0.2
function wp_check_filetype( $filename, $mimes = null ) {
if ( empty( $mimes ) ) {
$mimes = get_allowed_mime_types();
}
$type = false;
$ext = false;
foreach ( $mimes as $ext_preg => $mime_match ) {
$ext_preg = '!.(' . $ext_preg . ')$!i';
if ( preg_match( $ext_preg, $filename, $ext_matches ) ) {
$type = $mime_match;
$ext = $ext_matches[1];
break;
}
}
return compact('ext', 'type');
}