文件上传
当数据以multipart/form-data
的格式发送时,servlet 容器支持文件上传。
如果满足以下任何一个条件,servlet 容器提供 multipart/form-data
格式数据的处理。
- servlet处理的请求使用了第8.1.5节定义的注解
@MultipartConfig
。 - 为了servlet处理请求,部署描述符包含了一个
multipart-config
元素。
请求中的 multipart/form-data 类型的数据如何可用,取决于servlet 容器是否提供 multipart/form-data 格式数据的处理:
- 如果 servlet 容器提供 multipart/form-data 格式数据的处理,可通过 HttpServletRequest 中的以下方法得到:
- public Collection
getParts() - public Part getPart(String name) 每个 part 都可通过 Part.getInputStream 方法访问头部,相关的内容类型和内容。
对于表单数据的 Content-Disposition,即使没有文件名,也可使用 part 的名称通过 HttpServletRequest 的 getParameter 和getParameterValues 方法得到 part 的字符串值。
- public Collection
- 如果 servlet 的容器不提供 multi-part/form-data 格式数据的处理,这些数据将可通过 HttpServletReuqest.getInputStream 得到。