Form表单的enctype属性:
我们来看看W3CShool上对表单属性enctype的定义:
1)定义和用法:
a>enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。
b>默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,
所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。
2)属性名值和对应描述:
application/x-www-form-urlencoded 在发送前编码所有字符(默认)
multipart/form-data 不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
text/plain 空格转换为 "+" 加号,但不对特殊字符编码。
3)说明:
form的enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data,
a>当action为get时候,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2...),然后把这个字串增加到url后面,用?分割,加载这个新的url。
b>当action为post时候,浏览器把form表单数据封装到HTTP头信息中,然后发送到server。
c>如果没有type=file的控件,用默认的application/x-www-form-urlencoded就可以了。
d>但是如果有type=file的话,就要用到multipart/form-data了。浏览器会把整个表单以控件为单位分割,并为每个部分加上Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件name)等信息,并加上分割符(boundary)。