• 締切済み

inputタグ type=

「入力.html」でfileを選択し、テキストボックスに文字を入力し サブミットボタンをクリックすると 「表示.jsp」にファイル名とテキストボックスに入力した文字 を表示させたいのですがテキストボックスに入力した文字 が表示されません(nullと表示される)。 どうすればテキストボックスに入力した文字を 表示させられるでしょうか。 ご回答よろしくお願いします。 ==表示.jsp== <%@ page contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS"%> <% request.setCharacterEncoding("Shift_JIS"); %> <%@ page import="java.util.*"%> <%@ page import="java.text.*"%> <%@ page import="java.util.regex.*"%> <%@ page import="javax.servlet.*"%> <%@ page import="java.io.*"%> <% byte buffer[] = new byte[4096]; ServletInputStream in = request.getInputStream(); /* boundaryの読み込み */ int size = in.readLine(buffer, 0, buffer.length); // 末尾の改行(CR+LF)を除いて文字列に変換 String boundary = new String(buffer, 0, size - 2); /* Content-Dispositionヘッダ読み込み */ size = in.readLine(buffer, 0, buffer.length); String header = new String(buffer, 0, size - 1); Pattern pattern = Pattern.compile(".*filename=[ \"]*(.*)[ \"][\\W]*"); Matcher matcher = pattern.matcher(header); matcher.matches(); String fileName = matcher.group(1); File file = new File(fileName); fileName = file.getName(); %> <html> <head> </head> <body bgcolor="#99aaff"> <br> <%=fileName%><br> <%=request.getParameter("fileComment")%> </body> </html> =入力.html= (文字制限のため一部) type="file" name="fileName" type="text" name="fileComment"

みんなの回答

回答No.1

<form>タグのenctype属性に enctype="multipart/form-data" と「multipart/form-data」を指定していると思いますが、 この「multipart/form-data」を指定した場合は request.getParameter()からはHTTPリクエストの値を取得できません。 ファイル名を取得するのと同じようにマルチパートから取得して下さい。 ファイルの情報のあとに、input type="text"で入力された文字列があります。

19746999
質問者

お礼

pcbeginnerさん、ご回答ありがとうございました。 ----- Content-Disposition: form-data; name="fileComment" "コメント" ----- ↑のような部分を取得したいのですがわかりません。 リクエストデータをすべて見る方法を教えていただけないでしょうか。 よろしくお願いします。

19746999
質問者

補足

Content-Disposition: form-data; name="fileComment" の部分はファイルの内容が記述されているところの 後にあることがわかりました。 その行をどのように取得したらよいかわかりません。

関連するQ&A

専門家に質問してみよう