18

私は次のように取得しようとし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

    }

}

しかし、常にエラーが発生します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()、2、3、17 などを入力として使用するため、MIME タイプとして整数値を返す getimagesize を使用して問題を解決しました。

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 バージョン 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";
}
?>
于 2013-04-23T17:49:04.390 に答える