8

HTML中的表单就像

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

Servlet 就像

@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. 有没有不使用 3rd-party 库从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 回答