先日、PHPで画像ファイルのアップロード処理をおこなうプログラムを作っていたところ、以下のエラーが発生した。
undefined function finfo_buffer()
finfo_buffer()関数が定義されていない、という意味のエラーで、今回はこのエラーの解決法を紹介する。
finfo_buffer関数とは
finfo_buffer関数は、画像などのバイナリファイルのMIMETYPEなどの情報を取得する際に使われる関数だ。
1 2 3 | // 画像のMIMETYPEを取得する例 $data = "画像ファイルのパス" ; $mimeType = finfo_buffer(finfo_open(), $data , FILEINFO_MIME_TYPE); |
上記の例は、指定した画像ファイルのMIMETYPEを取得する例で、3行目で今回のエラーが発生した。
undefined function finfo_buffer()の解決法
finfo_buffer関数を使って今回のエラーが発生する原因は、使用しているPHP環境に必要なモジュールが不足していることにある。
モジュールを追加するためには、まずphp.iniファイルを開き、下記のコメントアウトされている部分をコメントインする。
1 2 3 4 5 | ;extension=fileinfo ↓ コメントイン extension=fileinfo |
ファイルを保存したらWebサーバーを再起動。
これで前述のエラーは解消されるはずだ。