Appearance
SpringMVC教程 - 13 文件上传与下载
在Web应用中,文件上传和下载是非常常见的功能。比如用户上传头像、上传文档、下载报告等。
SpringMVC6 为我们提供了方便的文件上传和下载功能,基于 Servlet 5.0+ 的原生文件上传支持,无需额外引入 Apache commons-fileupload 组件,只需要配置标准的 StandardServletMultipartResolver 即可。
13.1 文件上传
1 web.xml配置
在 DispatcherServlet 中添加 multipart-config 配置,如下:
xml
<!-- DispatcherServlet 配置 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<!-- 开启文件上传支持(Servlet 原生配置) -->
<multipart-config>
<!-- 临时目录(文件太大时会写入这里) -->
<location>/tmp</location>
<!-- 单个文件最大 50MB -->
<max-file-size>52428800</max-file-size>
<!-- 设置整个表单上传的所有文件总大小的最大值 100MB -->
<max-request-size>104857600</max-request-size>
<!-- 超过 2MB 才写入磁盘 -->
<file-size-threshold>2097152</file-size-threshold>
</multipart-config>
</servlet>2 配置上传解析器
在 SpringMVC 配置文件 spring-mvc.xml 中加入:
xml
<!-- 使用 Servlet 5.0 原生上传机制 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.support.StandardServletMultipartResolver"/>- 这是Spring6的配置,如果是 Spring5 ,需要配置
CommonsMultipartResolver,这里就不介绍了 。 StandardServletMultipartResolver的主要作用,就是把原本普通的 HTTP 请求解析成带有MultipartFile的请求对象,从而让我们在 SpringMVC 控制器中,能够直接拿到MultipartFile对象进行处理,待会 Controller 中会使用MultipartFile接收上传的文件,非常的方便。
基础配置已经配置好了,下面开始编写页面和 Controller,完成上传功能。
内容未完......

