springboot没有自己的文件上传技术,是依赖于springMVC的文件上传技术。本文,我们将介绍下springMVC中文件上传技术,并通过示例展示下该技术在springboot项目中的应用。
上传文件,必须将表单method设置为post,并将enctype设置为 multipart/form-data。只有这样,浏览器才会把用户所选文件的二进制数据发送给服务器。这个知识点以前在servlet3.0文件上传中介绍过一次,不熟悉的大家可以翻过去看看。springMVC在文件上传时,会将上传的文件映射为MultipartFile对象,并对MultipartFile对象进行文件的解析和保存。
先看下MultipartFile接口的几个方法
- byte[ ] getBytes( ):获取文件数据
- String getContentType( ):获取文件MIME类型,如application/pdf、image/pdf等
- InputStream getInputStream( ):获取文件流
- String getOriginalFileName( ):获取上传文件的原名称
- long getSize( ):获取文件的字节大小,单位为byte
- boolean isEmpty( ):是否有上传的文件
- void transferTo(File dest):将上传的文件保存到一个目标文件中。
接下来我们创建一个项目,分别演示下单文件和多文件上传功能。
创建一个maven项目,命令为fileupload。在pom.xml中添加依赖,项目需要用到thymeleaf技术,添加spring-boot-starter-thymeleaf依赖;为了修改后方便测试,项目添加spring-boot-devtools依赖。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>s