HTTPのPOSTで送信できるデータのサイズ
おおもとのWebサーバーの設定
Apache側で、不当に大きなサイズのデータの送信に制限をかけたりできるディレクティブに、次のものがある。
デフォルトは0で、制限なし。
LimitRequestBody
phpのメモリ制限 memory_limit
phpの設定項目 memory_limit で、使用できるメモリの量を制限できる。
PHP_INI_ALLで、どこでも設定できる。
ini_set('memory_limit', '16M');
phpが受け付けるPOSTデータのサイズ制限 post_max_size
memory_limitの値以下にしておかないと、memory_limitの制限に引っかかる。
PHP_INI_PERDIRで、php.iniか.htaccessでの設定となる。
#.htaccessにて php_value post_max_size 8M
phpのアップロードファイルの容量制限 upload_max_filesize
post_max_size以下にしておかないと、先にpost_max_sizeの制限に引っかかる。
PHP_INI_PERDIRで、php.iniか.htaccessでの設定となる。
;php.iniにて upload_max_filesize=2M
.htaccessを使うのをなるべく避けようとした場合どうするのがよいか考えていたのですが
スクリプト中で変更できるのは memory_limit だけですね。。。
.htaccessを使うのをなるべく避けようとした場合、post_max_size、upload_max_filesize は十分大きめに設定しておいて、ini_set('memory_limit', '100M');
などだけで制御するものと割り切るのが簡単かもしれません。
コメント