18

我试图得到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()。我在这里做错了什么?

4

3 回答 3

48

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

扩展=php_mbstring.dll
扩展=php_exif.dll

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

于 2013-04-23T17:45:29.590 回答
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
于 2014-09-09T20:11:20.087 回答
3

将此添加到您的代码中,以便我们知道您拥有的 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";
}
?>
于 2013-04-23T17:49:04.390 回答