問題
phpでアップロードするファイルを画像ファイルのみに制限するには?
解決策
- アップロードしたファイルの拡張子を「strtolower( pathinfo(, PATHINFO_EXTENSION) )」で取得します。
- 画像ファイルの拡張子のいずれかに一致しているかどうかを検証し、該当していれば処理を進めます。
phpでの画像ファイルの判定
phpでアップロードするファイルを画像ファイルのみに制限する方法をご紹介します。
フォームの送信処理(PHP)
- 「pathinfo( ファイル, オプション )」でファイルパスに関する情報を取得します。
オプションで「PATHINFO_EXTENSION」を指定することで、拡張子のみを取得することができます。 - 拡張子が大文字の場合があるので、「strtolower」で小文字に変換します。
- 画像ファイルの拡張子の一通りを配列に入れます。
そして取り出した拡張子を「in_array」で該当があるかどうかを判定します。
$tempfile = $_FILES['file']['tmp_name'];
$filename = $_FILES['file']['name'];
if (is_uploaded_file($tempfile)) {
$rest = array( 'jpg', 'jpeg', 'png', 'gif' );
$ext = strtolower( pathinfo($filename, PATHINFO_EXTENSION) );
if( in_array( $ext, $rest ) ){
echo '許可されたファイル形式です。';
}else{
echo '許可されていないファイル形式です。';
}
}
参照
【PHPでアップロードするファイルの拡張子をチェックするサンプル】
https://blog.ver001.com/php-get-extension/
コメント