Вызов неопределенной функции exif_imagetype ()

Я пытаюсь получить Mime-Type для image-types следующим образом:

 if(!empty($_FILES['uploadfile']['name']) && $_FILES['uploadfile']['error'] == 0){ $file = $_FILES['uploadfile']['tmp_name']; $file_type = image_type_to_mime_type(exif_imagetype($file)); switch($file_type){ // Codes Here } } 

Но он всегда дает ошибку Call to undefined function exif_imagetype() . Что я здесь делаю неправильно?

Включите следующие расширения в php.ini и перезапустите сервер.

расширение = php_mbstring.dll
расширение = php_exif.dll

Затем проверьте phpinfo() чтобы узнать, phpinfo() ли оно phpinfo() / Выкл.

Добавьте это в свой код, чтобы узнать, какая версия php у вас есть, потому что эта функция поддерживается только (PHP версия 4> = 4.3.0, PHP 5).

 <?php phpinfo(); ?> 

Он может быть не установлен, вы можете добавить эту часть кода, чтобы убедиться в этом:

 <?php if (function_exists('exif_imagetype')) { echo "This function is installed"; } else { echo "It is not"; } ?> 

Я думаю, что проблема заключается в конфигурации PHP и / или версии, например, в моем случае:

Мы знаем, что exif_imagetype() принимает путь к файлу или ресурс и возвращает константу, такую ​​как IMAGETYPE_GIF, и image_type_to_mime_type() принимает это постоянное значение и возвращает строку 'image/gif' , 'image/jpeg' и т. Д. Это не работает (отсутствует function exif_imagetype), поэтому я обнаружил, что image_type_to_mime_type() также может принимать целое число 1, 2, 3, 17 и т. д. в качестве входных данных, поэтому решена проблема с использованием getimagesize, которая возвращает целочисленное значение как тип mime:

 function get_image_type ( $filename ) { $img = getimagesize( $filename ); if ( !empty( $img[2] ) ) return image_type_to_mime_type( $img[2] ); return false; } echo get_image_type( 'my_ugly_file.bmp' ); // returns image/x-ms-bmp echo get_image_type( 'path/pics/boobs.jpg' ); // returns image/jpeg