简短的概述
在这篇文章中,我们将使用Servlet3.0以及javax.servlet.MultipartConfigElement,为了激活 Servlet3.0环境和Spring 的Multipart支持,你需要做以下:
1.添加 StandardServletMultipartResolver Bean 在 Spring 配置。这是一个标准实现 MultipartResolver 接口,基于Servlet3.0 javax.servlet.http.Part API。
2. 启用在Servlet3.0环境的多解析(MultiParsing)。要做到这一点,你有多种方案可供选择。
方案A. 对方案性 Servlet 注册设置
javax.servlet.MultipartConfigElement。MultipartConfigElement是
javax.servlet.annotation.MultipartConfig
的注释值(如选择C所述)的简单Java类表示。 这篇文章将特别侧重于这个选择。
方案B. 如果您使用基于XML的配置,可以在web.xml中在servlet配置声明 multipart-configsection 部分,如下图所示: <servlet>
<servlet-name>SpringDispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<multipart-config>
<location>/tmp</location>
<max-file-size>5242880</max-file-size><!--5MB-->
<max-request-size>20971520</max-request-size><!--20MB-->
<file-size-threshold>0</file-size-threshold>
</multipart-config>
</servlet>
方案C. 可以创建一个自定义 Servlet 和 javax.servlet.annotation.MultipartConfig 标注其标注,如下图所示: @WebServlet(name = "fileUploadServlet", urlPatterns = {"/upload"})
@MultipartConfig(location=/tmp,
fileSizeThreshold=0,
maxFileSize=5242880, // 5 MB
maxRequestSize=20971520) // 20 MB
public class FileUploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//handle file upload
}
话虽这么说,我们将专注于在这个例子中选择。
|