Вот моя проблема:
В форме, созданной с помощью Контактной формы 7, я разрешаю загрузку файлов типа pdf, jpg или jpeg. Меня беспокоит то, что управление расширением выполняется не полностью.
Действительно, если я возьму файл "test.exe" и переименую его в "text.jpg", я могу отправить свою форму и никаких ошибок не будет ...
Есть ли способ это проверить? (например, с помощью мим-теста)
И если да, то где мне реализовать код?
Заранее благодарю вас за ответы и прошу прощения за мой английский (я француз ...)

Я нашел для вас несколько полезных ответов на нашем форуме: PHP Загрузка файлов - проверка только изображений
Попробуйте этот ответ:
<?php
function isImage($img){
return (bool)getimagesize($img);
}
?>
Автор Джереми Харрис.
Вот руководство для getimagesize () http://php.net/manual/pl/function.getimagesize.php
Wordpress использует фильтр upload_mimes, чтобы контролировать, какие типы MIME разрешены для всего сайта. Вы можете настроить этот список, добавив в wp-includes / functions.php следующее:
function safe_mime_types($mime_types){
unset($mime_types['exe']); //remove .exe support
return $mime_types;
}
add_filter('upload_mimes', 'safe_mime_types', 1, 1);
Вы также можете добавить допустимые типы MIME:
function safe_mime_types($mime_types){
$mime_types['svg'] = 'image/svg+xml'; //add .svg support
unset($mime_types['exe']);
return $mime_types;
}
add_filter('upload_mimes', 'safe_mime_types', 1, 1);
Спасибо, но я не хочу делать это на всем веб-сайте. Только на определенной странице (сделанной с помощью Контактной формы 7).
Для тех, у кого такой же вопрос, вот мое решение:
В wp-includes/functions.php:
add_filter('wpcf7_validate_file*', 'cf7_custom_file_validation', 10, 2);
add_filter('wpcf7_validate_file', 'cf7_custom_file_validation', 10, 2);
function cf7_custom_file_validation ($result, $tag) {
if ($tag->name === 'file-586') {
$contentType = mime_content_type($_FILES[$tag->name]['tmp_name']);
if ($contentType !== 'image/png' && $contentType !== 'image/jpeg' && $contentType !== 'application/pdf') {
$result->invalidate($tag, 'Ce type de fichier n\'est pas supporté');
}
}
return $result;
}
Спасибо за ваш ответ. На полном php у меня нет проблем с этим. Моя проблема - интегрировать его в Wordpress (я новичок в wordpress), и я не хочу нарушать работу плагина Contact From (для более поздних обновлений).