### 1.文件上传的回顾
1.1.文件上传的必要前提
A、form 表单的 enctype 取值必须是:multipart/form-data
(默认值是:application/x-www-form-urlencoded
) enctype:是表单请求正文的类型
B、method 属性取值必须是 Post
C、提供一个文件选择域<input type=”file” />
1.2.文件上传的原理分析
当 form 表单的 enctype 取值不是默认值后,request.getParameter()
将失效。 enctype=”application/x-www-form-urlencoded”
时,form 表单的正文内容是:
key=value&key=value&key=value
,当 form 表单的 enctype 取值为Mutilpart/form-data
时,请求正文内容就变成:
每一部分都是 MIME 类型描述的正文
1.3.借助第三方组件实现文件上传
使用 Commons-fileupload 组件实现文件上传,需要导入该组件相应的支撑 jar 包:Commons-fileupload 和commons-io。commons-io 不属于文件上传组件的开发 jar 文件,但Commons-fileupload 组件从 1.1 版本开始,它工作时需要 commons-io 包的支持。
2.springmvc 传统方式的文件上传
2.1.说明
传统方式的文件上传,指的是我们上传的文件和访问的应用存在于同一台服务器上。并且上传完成之后,浏览器可能跳转。
2.2.实现步骤
2.2.1.第一步:拷贝文件上传的 jar 包到工程的 lib 目录
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>