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'); }