HOME >> Tips >> PHP

mime_content_type() を実行すると「Fatal error: Uncaught Error: Call to undefined function mime_content_type() in ~」が発生する

2017/8/2
文書番号:20754


php でアップロードされたファイルのMIMEタイプを取得しようと mime_content_type() を実行したところ、以下のエラーが発生しました。

==================================================================
Fatal error: Uncaught Error: Call to undefined function mime_content_type() in ... ==================================================================


php のマニュアルを参照したところ、以下のような記述がありました。

警告 Mimetype 拡張モジュールは PHP 5.3.0 で削除されました。後継は Fileinfo です。
PHP マニュアル  Mimetype

ということで、このページに記載されている通り、mime_content_type() は PHP 5.3.0 で削除されたようです。

後継の機能として「FileInfo」を使うといいようです。

PHP マニュアル  FileInfo


サンプル

//MIMEタイプを取得
$finfo  = finfo_open(FILEINFO_MIME_TYPE);
$mime_type = finfo_file($finfo, $_FILES['upfile']['tmp_name']);
finfo_close($finfo);

echo $mime_type;


サンプル(PHP 5.3以降の場合はこちらも可)

//MIMEタイプを取得
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mime_type = $finfo->file($_FILES['upfile']['tmp_name']);

echo $mime_type;

fileinfo を使用して「Fatal error: Uncaught Error: Class 'finfo' not found in ~」エラーが発生する場合は次のページをご参照ください。
「Fatal error: Uncaught Error: Class 'finfo' not found in ~」エラーの対処方法