PHP

PHPでファイルアップロード時の注意点

自分同様の初心者(特に独学をされている方)の方々がはまりそうなので
忘れないように残しておこうと思います。

何があったのか

page1から画像をアップし、page2で3MB以上ならNGとする判定を入れた状態としていたが
2MBの画像をアップしても所定のフォルダに格納されない・・・。

page1
            <form method="post" action="pro_add_check.php" enctype="multipart/form-data">
                <p>画像を選んで下さい。</p><br />
                <input type="file" name="image" style="width:400px"><br />
                <br />
                <input type="button" onclick="history.back()" value="戻る">
                <input type="submit" value="OK">
            </form>
page2
    $pro_image=$_FILES['image'];

    if($pro_image['size'] > 0){
        if($pro_image['size'] > 3000000){
            print '画像のサイズが大きすぎます。';
        }else{
            move_uploaded_file($pro_image['tmp_name'], './image/'.$pro_image['name']);
            print '<img src="./image/'.$pro_image['name'].'">';
            print '<br/>';
        }
    }

原因

ソース側に問題がないか色々試してみたが、問題は発見できず、調べてみたところ、
php.iniのupload_max_filesizeの値でアップロードファイルの容量上限を設定していることが判明。
(自分の環境は2MBでした。)
この値を2M以上にしてやることで無事解決。

※php.iniの値を変えた後はWebサーバの再起動を忘れずに・・・。