重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

multipart/form-dataの記述は入れると
アップロードと同じタイミングで
classファイルに渡したいデータ(SQL)が
エンコードが変換されているせいか渡せなくなって
しまいました。
この場合は何か対処する方法はありますでしょうか?
javaではgetParamerterで文字列を取得していまして
multipart/form-dataの記述を外すときちんと
取得できます。
宜しくお願いします。

A 回答 (2件)

>添付するファイルと他のオブジェクト(テキストなど)


>同じFORM内にあるのですが問題があるのでしょうか?

問題はまったく仕様が違うというところにあります。
詳細については下記の参考URLを見てください。
たとえばmultipartでない場合値は対になりname=valueという形で送信されますが、multipartの場合、データは区切り文字により区切られた形式で送信されてきます。その為、POSTデータとは別の場所にデータは保持されているため同一の手法ではNULLしか取得できません。通常multipartデータを取得する場合、Socketでデータを読み込み区切られたデータを解析し、区切られたデータの中から名前と値を取得する必要があります。情報は16進数で送られてくるなど結構面倒だったりするのであまり自身が無いようであればmultipartライブラリなどを使用してはどうでしょうか?

参考URL:
http://homepage3.nifty.com/uzblend/servlet/#x71(ファイルアップロードについて書かれているところ)
http://www.studyinghttp.net/rfc_ja/rfc2388_ja.html
    • good
    • 0

>エンコードが変換されているせいか渡せなくなって


しまいました
エンコードというよりも根本的に仕組みが違いますよ


>エンコードが変換されているせいか渡せなくなって
しまいました。
どのように渡せないんですか?値がないのですか?


>この場合は何か対処する方法はありますでしょうか?
multipartのための処理を書くか、ライブラリを入手してください。さらに、maltipartについて勉強してください。

この回答への補足

レス有難う御座います。

>どのように渡せないんですか?値がないのですか?
multipartの記述をした後は取得した値は"null"に
なってしまいます。
添付するファイルと他のオブジェクト(テキストなど)
同じFORM内にあるのですが問題があるのでしょうか?

補足日時:2004/07/26 13:20
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!