Spring-webmvc

文件上传

2019-07-09  本文已影响0人  xzz4632

1. 文件上传实现

spring提供了两种实现:

2. 配置

2.1 基于Apache Commons fileupload的实现
2.1.1 引入commons-fileupload依赖.
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.4</version>
</dependency>
2.1.2 配置

声明CommonsMultipartResolver bean.
bean的id为multipartResolver.通过它的属性设置相关参数.

2.2 基于Servlet 3.0的实现
2.2.1 依赖

无需引入其他依赖.

2.2.2 配置
<multipart-config>
    <file-size-threshold></file-size-threshold>
    <!--文件上传路径, 此上传方式强制要有-->
    <location></location>
    <!--上传文件的最大大小(字节), 默认没有限制-->
    <max-file-size></max-file-size>
    <!--整个请求的最大容量(字节), 默认无限制-->
    <max-request-size></max-request-size>
</multipart-config>

如果是基于Java的配置, 配置如下:

import javax.servlet.MultipartConfigElement;
import javax.servlet.ServletRegistration.Dynamic;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class Initializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected void customizeRegistration(Dynamic registration) {
        //通过MultipartConfigElement的构造函数设置与xml配置中相同的参数配置
        MultipartConfigElement e = new MultipartConfigElement("");
        registration.setMultipartConfig(e);
    }
}

注:cutomizeRegistration方法是在AbstractDispatcherServletInitializer类中定义的.

3. 处理文件

3.1 接收文件

通过MultipartFile类型的对象来接收文件.

3.2 保存文件

通过MultipartFile对象的transferTo()方法保存文件.

上一篇下一篇

猜你喜欢

热点阅读