SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

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'); などだけで制御するものと割り切るのが簡単かもしれません。

関連するメモ

コメント