Вызов неопределенной функции 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(). Что я здесь делаю не так?

Author: Subedi Kishor, 2013-04-23

3 answers

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

Extension=php_mbstring.dll
extension=php_exif.dll

Затем проверьте phpinfo(), установлен ли он в положение вкл/выкл

 39
Author: samayo, 2014-04-02 12:32:35

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

Мы знаем,exif_imagetype() принимает путь к файлу или ресурсу и возвращает константу как IMAGETYPE_GIF и image_type_to_mime_type() принимает постоянное значение и возвращает строку 'image/gif', 'image/jpeg', и т. д. Это не сработало (отсутствует функция 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
 4
Author: aesede, 2017-02-01 13:39:24

Добавьте это в свой код, чтобы мы могли знать, какая версия 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";
}
?>
 3
Author: Imane Fateh, 2015-06-16 05:26:45