画像アップロードの拡張子制限
いつもお世話になっています。
現在画像アップローダーを作っているのですがサイズ制限を100KBまで、拡張子は「gif.jpeg.jpg.png」のみに限定したいのですが可能でしょうか?
拡張子を意図的に偽装してくる場合でもエラーを表示させるようにしたいと思っています。
【現在のソース】
<?php
//保存名
$pict_id = aaaa;
//画像のコピー
copy($_FILES["userfile"]["tmp_name"],"./photo/$pict_id.jpg");
//画像のリサイズ
$img = "http://www.xxxxx.jp/photo/$pict_id.jpg"; // 読み込む画像のアドレス
$outfile = "./photo/$pict_id.jpg";
$size = 145 ; // リサイズするサイズ (大きい方の幅をこれに合わせる)
if (!($irc = @imagecreatefromjpeg($img))) // jpeg として読み込んでみる
if (!($irc = @imagecreatefrompng($img))) // png として読み込んでみる
$irc = @imagecreatefromgif($img) ; // gif として読み込んでみる
if (!$irc) {
// 画像が正しく読み込めなかったときの処理
// エラー画面へ
$headerLink = "./error.html";
header("Location: ".$headerLink);
}
if (imagesx($irc) > imagesy($irc)) {
$rrc = imagecreatetruecolor($size, $size * imagesy($irc) / imagesx($irc)) ;
} else {
$rrc = imagecreatetruecolor($size * imagesx($irc) / imagesy($irc), $size) ;
}
imagecopyresampled($rrc, $irc, 0, 0, 0, 0, imagesx($rrc), imagesy($rrc), imagesx($irc), imagesy($irc)) ;
//保存
imagejpeg( $rrc , $outfile );
//出力
header("Content-type: image/jpeg");
// ロケーション
$headerLink = "./ok.html";
header("Location: ".$headerLink);
?>