我正在努力为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()
。我在这里做错了什么?
答案 0 :(得分:39)
在php.ini
中启用以下扩展程序,然后重新启动服务器。
延长=中php_mbstring.dll
延长= php_exif.dll
然后检查phpinfo()
以查看它是否设置为开启/关闭
答案 1 :(得分:4)
我认为问题是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
答案 2 :(得分: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";
}
?>