PHPのアップロード容量の上限の設定は3段構えになっている感じでちょっとわかりづらいかもしれません。
ざっくり言うと、
memory_limit >= post_max_size >= upload_max_filesize
となるように設定しましょう、ということです。
20MBのアップロードを許容しようとすると、文字通りにupload_max_filesizeは当然20M(以上)となります。
post_max_sizeはPOSTリクエストの容量の上限を規定します。20Mのファイルアップロードを扱うためにはpost_max_sizeはupload_max_filesize以上必要になります。
PHPでそれらすべてを扱うためにメモリを確保しなくてはならないのでmemory_limitはpost_max_size以上必要、となります。
以下、ドキュメントからの引用です。
memory_limit integer
スクリプトが確保できる最大メモリをバイト数で指定します。この命令は、 正しく書かれていないスクリプトがサーバーのメモリを食いつぶすことを防止するのに役立ちます。 もし、使用可能メモリに制限を設けたくない場合は、 ここに -1 を指定してください。
post_max_size integer
POSTデータに許可される最大サイズを設定します。この設定は、ファイルアップロードにも影響します。大きなファイルをアップロード するには、この値を upload_max_filesize より大きく設定する必要があります。 一般的に memory_limit は、 post_max_sizeよりも大きく する必要があります。 integerを使用する際、 その値はバイト単位で測られます。 この FAQ に記載された 短縮表記を使用することも可能です。 POSTデータの大きさが、post_max_sizeより大きい場合、 $_POST と $_FILES superglobals は空になります。この事象は、いくつかの方法で検出することができます。 例えば、$_GET 変数をデータを <form action="edit.php?processed=1">のように 処理するスクリプトに渡し、 $_GET['processed'] が設定されているかどうかを 確認する方法があります。
upload_max_filesize integer
アップロードされるファイルの最大サイズ。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/24 12:25
2015/12/25 00:12