Spring MVC 之 文件上传
文件上传可以说是项目中最常用的功能。
Spring MVC 为文件上传提供了直接的支持,Spring MVC 提供了一个文件上传的解析类CommonsMultipartResolver
,即插即用(在XML文件装配下),该类依赖了Apache Commons FileUpload
技术,所以需要导入commons-fileupload.jar
和commons-io.jar
两个包。
上传文件,必须将表单的method
设置为post
,并将enctype
设置为multipart/form-data
,浏览器才会把文件二进制数据发给服务器。
MultipartFile
MultipartFile提供了获取上传文件内容、文件名等方法,transferTo()
可将文件存储到磁盘中。
- String getName():获取表单中文件组件的名字。
- String getOriginalFilename():获取上传文件的原名。
- String getContentType():获取文件
MIME
类型,如image/jpeg等。 - boolean isEmpty():判断是否有上传文件。
- long getSize():获取文件的字节大小,单位 bytes。
- byte[] getBytes():获取文件数据(字节数组)。
- InputStream getInputStream():获取文件流。
- void transferTo(File dest):将上传文件保存到一个目标文件中。
示例代码
- 上传
java
代码
1 | import javax.servlet.http.HttpServletRequest; |
springmvc.xml
装配CommonsMultipartResolver
类。
1 | <!-- 配置Spring MVC文件上传 --> |
对象接收文件
- 在实体类文件定义
MultipartFile
类型的属性,如下:
1 | private MultipartFile headImage;// 头象 |
Controller
方法使用对象来接收文带有上传文件的from
表单提交的数据。
Spring MVC 之 文件上传