• 締切済み

BASE64でエンコードしてPOSTしたパラメータが、Javaで取得できません。原因がわかりません。

ファイルデータをサーバにアップロードするために、 BASE64でエンコードしてPOSTしています。 1.4MBぐらいまではrequestをサーバ側で取得でき保存できるのですが、 1.4MBぐらいを超えると、requestが取得できず(?)例外となります。 requestが取得できていないと判断したのは、 eclipseでデバックして、リクエストの中身を参照して判断しました。 Apacheのログでは正しくApacheで取得しているであろう、 ファイルサイズが出力されています。 何が起因しているのかまったく分かりません。 何か解決方法のヒントでも教えていただけませんでしょうか。 ローカルのWindowsでも同現象になります。 Apache:2.0 Tomcat:6.0 DI(Seasar):2.4.28

みんなの回答

noname#120325
noname#120325
回答No.1

ちょっとどんな例外かわからないのであれですがー。 単純に、TomcatのPOSTサイズの上限を設定してないってことはないでしょうかー。server.xmlの<Connector>に、maxPostSize="バイト数"ってやって上限をでかくしてやったら送れないですかねー。

yasuval
質問者

お礼

お返事を頂いたにも関わらず、連絡が遅くなり申し訳ございませんでした。 原因をいろいろと調査していった結果、 tomcatのserver.xmlにmaxPostSizeというのが設定されていて、 それの初期値が2MBだった、ということが、分かりました。 1.4MBをBASE64でエンコードしてPOSTすると、 元データより多くのデータ量をPOSTすることになり、 他リクエストパラメータと合わせて、2MBを超えたためでした。 大変お世話になりました。 BASE64でリクエストパラメータとしてPOSTするのは、 あまり良いやり方ではないかもしれないですかね。。。

関連するQ&A