- - PR -
HTMLからのファイルのアップロードについて
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-03-09 16:00
こんにちはナスティキャットです。
昔作ったファイルのアップロードが動かなくなってしまいました・・・ コードはいじってないはずなのですが・・ HTMLからファイルをアップしてjavaで保存するプログラムです。 アップしてるのに、リクエストで受け取ってくれません。 HTML---------------------------------------------------------------------------- <FORM METHOD="POST" name="frm" ACTION="/Bulletin/servlet/Add1" method="post" > <TABLE BORDER="2"> <TR><TD>画像</TD><TD><INPUT TYPE="file" NAME="fileName" VALUE="参照"></TD></TR> </TABLE> <BR> <INPUT TYPE="submit" NAME="アップ" VALUE="アップ"> </FORM> -------------------------------------------------------------------------------- JAVA---------------------------------------------------------------------------- public void doPost(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException { try{ int bufsize = 1024*10; byte[] b = new byte[bufsize]; ServletInputStream in= req.getInputStream(); try{ while((count=in.readLine(b,0,bufsize)) != -1){ -------------------------------------------------------------------------------- ここの時点でwhileを抜けてしまいます・・・ 恐らくreq.getInputStream()が取得できていないためと思われますが, なぜ急にServletInputStreamが取得できなくなってしまったのでしょう? どなたかご教授ください _________________ [ メッセージ編集済み 編集者: ナスティキャット 編集日時 2004-03-09 16:04 ] | ||||||||
|
投稿日時: 2004-03-09 16:16
ファイルをアップロードする場合は
<FORM ENCTYPE="multipart/form-data" ACTION=...> のようにENCTYPEを指定する必要があるのでは? | ||||||||
|
投稿日時: 2004-03-09 17:51
yuzyさんありがとうございます。
その部分が消えてしまっていたようです。 そこを戻したら解決しました。 | ||||||||
|
投稿日時: 2004-03-18 15:32
こんにちは。
前回、yuzyさんのおかげでファイルはアップできましたが、この方式を使ったら、 HttpServletRequestのgetParameterメソッドでnullが返ってきてしまいます。 このような現象を回避するにはどうしたらよいのでしょうか? | ||||||||
|
投稿日時: 2004-03-18 15:39
その方法では取得できませんので、 ストリームを解析して、パラメーターを取り出してください。 だいたい、以前はどうされていたんでしょうか? | ||||||||
|
投稿日時: 2004-03-18 15:44
takuさん返信ありがとうございます。
以前は、ファイル以外のパラメータは送っていなかったので・・・・ 今回他のパラメータを送ったら受け取れなかったのです | ||||||||
|
投稿日時: 2004-03-18 15:59
ファイル名はどうされているんでしょうか? 以前の状態でも、指定したファイル名は送られてきたはずです。 | ||||||||
|
投稿日時: 2004-03-18 18:12
>ファイルをアップロードする場合は
><FORM ENCTYPE="multipart/form-data" ACTION=...> >のようにENCTYPEを指定する必要があるのでは? この場合のPOSTストリームデータは下記のようになります。
>HttpServletRequestのgetParameterメソッドでnullが返ってきてしまいます。 ナスティキャットさんが最初に投稿したformの形式で、ユーザ名とパスワードを 送信しようとすればPOSTストリームデータは下記のようになるはずです。
getParameterは、この「user=SJ0392&pw=xxx」という形式の場合のみ取得できます。 | ||||||||
