8

HTMLのフォームは次のようになります

...
<form method="post" action="/foobar">
  <input type="file" name="attachment" />
  <input type="text" name="foo" />
  ... other input fields
</form>

そして、サーブレットは次のようになります

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String attachment = request.getParameter("attachement");
    String foo = request.getParameter("foo");
    // get other parameters from the request
    // and get the attachment file
}

そして、私は疑問に思っています

  1. サードパーティのライブラリを使用せずにHttpServletRequestオブジェクトからファイルを取得する方法はありますか?

  2. 何をrequest.getParameter("attachement")返しますか?ファイル名か何かですか?

  3. バイナリ入力は、Web コンテナーによって自動的にファイル システムに保存されますか、それとも一時的にメモリに保存されますか?

4

2 に答える 2

1

何かを行う前に、フォームアクションは「POST」および enctype="multipart/form-data" である必要があります。

つまり、ファイルを取得するには、自分でリクエストを準備する必要があります。

チェックする必要があります:

マルチパート リクエスト/レスポンス Java

于 2013-03-01T15:39:18.593 に答える
0

フォームに追加 enctype="multipart/form-data"

<form name="formname" action="servletName" method="post"  enctype="multipart/form-data">
<input type="file" name="attachment" />
  <input type="text" name="foo" />
  ... other input fields
</form>

コントローラー側でフォームを送信すると、画像を取得できます

String picture = (request.getParameter("attachment")).getBytes();

私はファイルが画像であると仮定しました。任意のファイルを渡すことができます

于 2013-03-01T16:13:13.683 に答える