PHPのupload_max_file_sizeとpost_max_sizeはini_setで変更できない
実は最近まで気づかなかった・・・orz
phpでアップロードファイルサイズの許容量を5Mにしたかったのと、10M以上のファイルがアップロードされたら警告を出したかったので下記のようなコードを書いてみた。
php version 5.1.6
ini_set('upload_max_file_size','5M'); ini_set('post_max_size,'20M'); ini_set('memory_limit','32M'); echo ini_get('upload_max_file_size'); echo ini_get('post_max_size'); echo ini_get('memory_limit');
デフォルト状態での各設定値は下記の通り。
upload_max_file_size -- 2M
post_max_size -- 8M
memory_limit -- 8M
結果を見ると、こんな感じ。
2M 8M 32M
変更されてないと思って調べてみたら、まず upload_max_file_size と post_max_size はini_setで変えられない事が判明した。
http://cai.cs.shinshu-u.ac.jp/sugsi/Lecture/php/manual/function.ini-set.html
そしたらこうなるのも当然か・・・
ここを httpd.confかphp.iniで変えた後に、Linux & apache環境の場合はさらに下記のファイルの設定も変える必要がある。
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 524288
これでPHPでも大きなファイルをアップロードすることができるようになるっぽい。