调用未定义的函数exif_imagetype()

Sub*_*hor 13 php upload file-upload image mime-types

我试图让Mime-Typeimage-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

    }

}
Run Code Online (Sandbox Code Playgroud)

但它总是给出错误Call to undefined function exif_imagetype().我在这做错了什么?

sam*_*ayo 40

启用以下扩展名php.ini并重新启动服务器.

extension = php_mbstring.dll
extension = php_exif.dll

然后检查phpinfo()它是否设置为开/关


aes*_*ede 6

我认为问题是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
Run Code Online (Sandbox Code Playgroud)