PHPでアップロードされたファイルタイプのチェック方法(fileinfo, mime-type) サンプル編

PHPでアップロードされたファイル形式(拡張子)のチェック方法です。

色々調べた所、PECLのFileinfo 関数というのが良さそうだったのでメモ。

インストール編はこちら

実際のサンプルコード。


<?php
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // return mime type ala mimetype extension

if (!$finfo) {
echo "fileinfo データベースのオープンに失敗しました";
exit();
}

/* 指定したファイルの mime タイプを取得します */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);

/* 接続を閉じます */
finfo_close($finfo);
?>

参考はこちら:
http://jp.php.net/manual/ja/ref.fileinfo.php

PHPでアップロードされたファイルタイプのチェック方法(fileinfo, mime-type) インストール編

PHPでアップロードされたファイル形式(拡張子)のチェック方法です。

色々調べた所、PECLのFileinfo 関数というのが良さそうだったのでメモ。

サンプル編はこちら

まずは、インストール。

$ sudo pecl install fileinfo

Build process completed successfully
Installing '/usr/lib/php/modules/fileinfo.so'
install ok: channel://pear.php.net/Fileinfo-1.0.4

次に、iniファイルの新規作成。

$ sudo vi /etc/php.d/fileinfo.ini

extension=fileinfo.so

次に、apacheの再起動

$ sudo /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

最後に、phpinfo()で[fileinfo]の項目があればインストール完了!!