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 之 文件上传

