Spring MVC框架的文件上传是基于commons-fileupload组件的文件上传,只不过Spring MVC框架在原有文件上传组件上做了进一步封装,简化了文件上传的代码实现,取消了不同上传组件上的编程差异。
基于表单的文件上传,不要忘记使用enctype属性,并将它的值设置为multipart/form-data。同时,表单的提交方式设置为post。为什么需要这样呢?下面从enctype属性说起。
表单的enctype属性指定的是表单数据的编码方式,该属性有如下三个值:
application/x-www-form-urlencoded:这是默认的编码方式,它只处理表单域里的value属性值。
multipart/form-data:该编码方式以二进制流的方式来处理表单数据,并将文件域指定文件的内容封装到请求参数里。
text/plain:该编码方式当表单的action属性为mailto:URL的形式时才使用,主要适用于直接通过表单发送邮件的方式。
由上面三个属性的解释可知,基于表单上传文件时,enctype的属性值应为multipart/form-data。
具体过程请参考使用idea整合spring mvc进行文件的上传和保存