Blogブログ

PHPでアップロードされた画像のサイズをチェックする

2013/09/01

フォームを扱う時に画像のアップロードをしたい場合があります。

そんな時にwidthを320px heightを240pxとかの任意のサイズの画像を指定したい場合のやり方を解説します。

エラーチェックでアップロードされた画像がそのサイズなのかをチェックします。

<form action="" method="post enctype="multipart/form-data">
<input type="file" name="img" />
</form>

こんなフォームがあったとします。
※画像をアップロードする時はformタグのenctype属性にmultipart/form-dataを指定してください。
※また、inputタグのtype属性はfileになります。

これをphpで受け取るときは$_FILESを使います。

なんで$_FILESなの?と聞かれてもそうゆう決まりだからとしかいえないですが、

この中に画像データが入っています。

$imgData = getimagesize ( $_FILES['img']['tmp_name'] );

$_FILESの[‘img’]はHTML側で決めたname属性の名前を指定します。
その次の[‘tmp_name’]は決まりごとだと思ってください。

getimagesize()の引数にこの$_FILES[‘img’][‘tmp_name’]を指定すると戻り値として

配列で画像のデータが戻ってきます。

$imgDataの中身は

$imgData[0] //画像の幅
$imgData[1] //画像の高さ
こんな感じでデータが入っています。
※var_dump()すれば中身は分かるのですが、他の値も入っています。ちょっと今回は割愛します。

これを使ってこちらが意図している画像のサイズか確認することができます。

define ( 'CHECK_WIDTH' , 320 );
define ( 'CHECK_HEIGT' , 240 );
if ( $imgData[0] == CHECK_WIDTH ) {
   print "画像の横幅は規定のサイズです。";
}else{
   print "画像の横幅は".CHECK_WIDTH."pxでアップロードしてください。";
}
if ( $imgData[1] == CHECK_HEIGT ) {
   print "画像の縦は規定のサイズです。";
}else{
   print "画像の縦は".CHECK_HEIGT."pxでアップロードしてください。";
}

こんな感じでチェックができます。

他社より断然お得で使いやすい
”アクトのWEB制作”
ACTホームページ相談窓口 / 
システム開発相談窓口