たきゃはしです

もう日常ブログにしよう

PHPのファイルアップロードのバリデーション等に使える、MIMEタイプの配列


MIMEタイプの一覧、コピペ用です。
ソースは配列で、PHPであればどこでも使えます。


アップロード機能は、小規模なWebサービスでも必ず存在するでしょう。


そのアップロードのバリデーション(評価)は拡張子で確認してもいいけど
拡張子自体は偽装できるので、やはりMIMEタイプでも判断するべきだと思います。


そこで、ケース別で使えるMIMEタイプを以下に記載してます。
このMIMEタイプ配列の使い道は自由です。許可、あるいは拒否


「このMIMEタイプ忘れてるぞー」ってのがあれば教えてください。お願いします

画像・イメージファイル関連

jpg, jpeg, png, gif
$validates = array(
        'arr_mime' => array('image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif'),
);
jpg, jpeg, png, gif, bmp, ico
$validates = array(
        'arr_mime' => array('image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'image/bmp', 'image/x-icon', 'image/vnd.microsoft.icon'),
);


2011-01-28  'image/x-png' を追加。id:kanonji さんありがとうございます。

資料・ドキュメント関連

pdfのみ
$validates = array(
        'arr_mime' => array('application/pdf'),
);
word, excel
$validates = array(
        'arr_mime' => array('application/msword', 'application/excel', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',),
);
pdf, word, excel, powerpoint, rtf
$validates = array(
        'arr_mime' => array('application/pdf', 'application/msword', 'application/mspowerpoint', 'application/vnd.ms-powerpoint', 'application/excel', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/rtf'),
);