2013-04-23 16 views
13

私は次のようにimage-typesためMime-Typeを取得しようとしています:コール()

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

@phpNoOb私は答えとして試しましたが、それでも同じエラーです。 –

答えて

37

php.iniに次の拡張機能を有効にして、サーバーを再起動してください。

拡張子= php_mbstring.dll
拡張子=必ずphp_exif.dll

そして、それはオン/オフに設定されている場合、我々はできるように

+0

この操作のあとにApacheサーバを再起動することを忘れないでください。 –

+0

--enable-exif#Linux – Zjmainstay

+0

Linuxの場合、これは 'extension = exif.so'です。私はPHPのドキュメントで--enable-exifオプションを見つけることができませんでした。 – BakaKuna

3

はあなたのコードにこれを追加参照してくださいphpinfo()をチェックこの関数は(PHPバージョン4> = 4.3.0、PHP 5)でしかサポートされていないため、あなたが持っているPHPのバージョンを知ることができます。

<?php 
    phpinfo(); 
?> 

それがインストールされていないことがあり、あなたはそれがあることを確認するために、コードのこの部分を追加することができます。

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

私は 'PHPバージョン5.2.9'です。 –

+0

@Kishor Subedi、私の編集をチェックする、btwはWindowsやLinuxの下にいますか? –

+0

私は窓口のユーザーです。 –

3

私は問題は例えば、私の中で、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