2006年6月20日火曜日

PHPのUPLOADであるサイズ以上のファイルサイズが2倍程度になる

[現象]
CSVファイルのUPLAODである行数以上(数千バイト)になるとデータが約2倍繰り返して、
UPLOADされる。
[原因]
当然プログラムを疑ったのですが、プログラムではなく、PHP(4.3.3)またはApache(2.0.46)設定に問題があるという結論にたどり着き。
=>Googleで似たような症状がないか検索
検索キーワード: [php upload 異常] とかいろいろ検索したけど見つからず、
ついでに、UPLOADサイズが、php.iniで関連タグを数十Mバイトにしているにもかかわらず、
500KバイトぐらいしかUPLAODできず。この現象からたどっていくと、
php.iniの他に/etc/httpd/conf.d/php.confの設定があり、

SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 524288

デフォルトで以上の5行があり、ここが悪さをしているようでした。SetxxxFileterをコメントアウトしたらすべて正常に
なった。このサーバで以前POSTデータがなぜか場合によって変わってしまうわけのわからない現象がありましたが、これも収まるはずです。
php(4.3.11),apache(2.0.52)ではこのような、でしゃばった設定はないので問題ないのですが、
見つけるのにまる1日かかってしまいました。
尚、
=>google検索では、[php SetOutputFilter]で類似現象が検索できます。

0 件のコメント:

コメントを投稿