phpエラー Warning: Maximum number of allowable file uploads has been exceeded in Unknown on line 0

PHP 5.2.12 から増えたコンフィグオプション

max_file_uploads

の関係で、5.2.12以降のデフォルトではファイルアップロード数が20に制限されています。

http://php.net/manual/en/ini.core.php

max_file_uploads integer

The maximum number of files allowed to be uploaded simultaneously.

max_file_uploads integer
同時にアップロードできるファイルの最大数の指定

デフォルトの状態で、20を超えるファイルアップロードを行おうとすると

Warning: Maximum number of allowable file uploads has been exceeded in Unknown on line 0

のwarningエラーが出てしまいます。


回避方法はphp.iniに

max_file_uploads 50

等の記述を追加するととりあえずしのげます。


環境ごとに以下のスクリプトを設置して調査してみます。
テストスクリプト
testform.php

<html>
<body>

<form name=logoutform method="post" action="formtest.php" enctype="multipart/form-data" >

<?php
var_dump($_FILES);

for ($i = 1; $i <= 21; $i++) {
    echo '<input class="max" type="file" name="hoge['.$i.']" value="" />';
}
?>

<input type="submit" name="" value="submit" />


</body>
</html>