wp_check_filetype() WP 2.0.4

Отримує розширення та MIME тип файлу за переданим ім’ям (шляхом) файлу. Використовується для перевірки чи дозволено вказаний тип файлу для завантаження на сайт.

У другому параметрі можна вказати типи файлів. За умовчанням вони виходять функцією get_allowed_mime_types() .

1 раз – 0.0011148 сек
(дуже повільно) | 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

Приклади

0

#1 Демонстрація роботи функції

$filetype = wp_check_filetype( dirname(__FILE__) . '/image.jpg' );

echo $filetype['ext']; // виведе: jpg
echo $filetype['type']; // виведе: image/jpeg
0

#2 Перевіримо чи дозволено файл на сайті

Для перевірки отримаємо дані файлу:

$filetype = wp_check_filetype('image.jpg');
if( $filetype['ext'] )
	echo 'Файл із розширенням'. $filetype['ext'] .' дозволено';
else
	echo 'Файл із розширенням'. $filetype['ext'] .' заборонено';
0

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *