- ベストアンサー
ファイルのアップロードについて
multipart/form-dataの記述は入れると アップロードと同じタイミングで classファイルに渡したいデータ(SQL)が エンコードが変換されているせいか渡せなくなって しまいました。 この場合は何か対処する方法はありますでしょうか? javaではgetParamerterで文字列を取得していまして multipart/form-dataの記述を外すときちんと 取得できます。 宜しくお願いします。
- みんなの回答 (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
その他の回答 (1)
- covachan
- ベストアンサー率38% (46/120)
>エンコードが変換されているせいか渡せなくなって しまいました エンコードというよりも根本的に仕組みが違いますよ >エンコードが変換されているせいか渡せなくなって しまいました。 どのように渡せないんですか?値がないのですか? >この場合は何か対処する方法はありますでしょうか? multipartのための処理を書くか、ライブラリを入手してください。さらに、maltipartについて勉強してください。
補足
レス有難う御座います。 >どのように渡せないんですか?値がないのですか? multipartの記述をした後は取得した値は"null"に なってしまいます。 添付するファイルと他のオブジェクト(テキストなど) 同じFORM内にあるのですが問題があるのでしょうか?