基于表单的文件上传
标签<input type=”file”/>会在浏览器中显示一个输入框和一个按钮,输入框可供用户填写本地文件的文件名和路径名,按钮可以让浏览器打开一个文件选择框供用户选择文件。
文件上传的表单例子如下:
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="myfile"/>
...
</form>
对于基于表单的文件上传,不要忘记使用enctype属性,并将它的值设置为multipart/form-data,同时将表单的提交方式设置为post。为什么要这样呢?下面从enctype的属性说起。
表单的enctype属性指定的是表单数据的编码方式,该属性有以下3个值。
- application/x-www-from-urlencoded:这是默认的编码方式,它只处理表单域李的value属性值。
- multipart/form-data:该编码方式以二进制流的方式来处理表单数据,并将文件域指定文件的内容封装到请求参数里。
- Text/plain:该编码方式只有当表单的action属性以mailto:URL的形式是才使用,主要适用于直接通过表单发送邮件的方式。
由上面的三个属性的解释可知,在基于表单上传文件时enctype的属性值应为multipart/form-data。