Spring MVC 框架的文件上传基于 commons-fileupload 组件,并在该组件上做了进一步的封装,简化了文件上传的代码实现,取消了不同上传组件上的编程差异。
MultipartResolver接口
在 Spring MVC 中实现文件上传十分容易,它为文件上传提供了直接支持,即 MultpartiResolver 接口。MultipartResolver 用于处理上传请求,将上传请求包装成可以直接获取文件的数据,从而方便操作。
MultpartiResolver 接口有以下两个实现类:
- StandardServletMultipartResolver:使用了 Servlet 3.0 标准的上传方式。
- CommonsMultipartResolver:使用了 Apache 的 commons-fileupload 来完成具体的上传操作。
MultpartiResolver 接口具有以下方法。
名称 |
作用 |
byte[] getBytes() |
以字节数组的形式返回文件的内容 |
String getContentType() |
返回文件的内容类型 |
InputStream getInputStream() |
返回一个InputStream,从中读取文件的内容 |
String getName() |
返回请求参数的名称 |
String getOriginalFillename() |
返回客户端提交的原始文件名称 |
long getSize() |
返回文件的大小,单位为字节 |
boolean isEmpty() |
判断被上传文件是否为空 |
void transferTo(File destination) |
将上传文件保存到目标目录下 |
单文件上传
1.maven引入
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupI