以前、業務で使用するために、白背景の合成ツールを作成しようとした際、20個までしかファイルのアップロードができずハマったのでメモ。inputタグやサーバー側の問題かと思いましたが、php.ini で設定を変更して解決。

設定方法

max_file_uploads|送信できるファイルの個数

1回の送信で送れるファイルの個数は以下で変更する。以下は100個へ変更する場合。

max_file_uploads = 100

upload_max_filesize|アップロードできる1つの最大ファイルサイズ

upload_max_filesize = 20M

post_max_size|POST送信できる最大サイズ

post_max_size = 80M

memory_limit|メモリ使用量の制限

memory_limit = 512MB

max_execution_time|タイムアウト秒数

max_execution_time = 120

デフォルト値

それぞれのデフォルト値は以下。

  • デフォルト値
  • max_file_uploads
  • 20
  • upload_max_filesize
  • 2M
  • post_max_size
  • 8M
  • memory_limit
  • 128MB
  • max_execution_time
  • 20

注意

変更後は忘れずにApacheを再起動すること。

「memory_limit」「post_max_size」「upload_max_filesize」は以下のような関係になるよう設定すること。

memory_limit > post_max_size > upload_max_filesize

参考

ファイルアップロードの最大サイズを変更 | SugiBlog