临海小憇

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4625|回复: 0
打印 上一主题 下一主题

Spring MVC4使用Servlet3 MultiPartConfigElement文件上传

[复制链接]

100

主题

121

帖子

8552

积分

论坛元老

Rank: 8Rank: 8

积分
8552
跳转到指定楼层
楼主
发表于 2017-5-27 14:49:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

简短的概述

在这篇文章中,我们将使用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
        }

话虽这么说,我们将专注于在这个例子中选择。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|临海小憇 ( 鲁ICP备16010828号-2

GMT+8, 2024-4-26 12:52 , Processed in 0.045039 second(s), 7 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表