如何从Java Servlet中的HttpServletRequest获取文件

Wen*_* Ji 7 java servlets

HTML中的表单就像

...
<form method="post" action="/foobar">
  <input type="file" name="attachment" />
  <input type="text" name="foo" />
  ... other input fields
</form>
Run Code Online (Sandbox Code Playgroud)

而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
}
Run Code Online (Sandbox Code Playgroud)

而且我在想

  1. 是否有任何方法不使用第三方库从HttpServletRequest对象中获取文件?

  2. 什么request.getParameter("attachement")回报?是文件名还是其他什么?

  3. 二进制输入是由Web容器自动存储在文件系统中还是暂时存储在内存中?

小智 2

在进行任何操作之前,您的表单操作应该是“POST”和enctype =“multipart / form-data”。

这就是说......要获得文件,您必须自己准备请求。

你应该检查:

多部分请求/响应 java