enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。它有三个值
1.application/x-www-form-urlencoded:表单数据被编码为名称/值对。这是默认的编码方式(空格转换为 “+” 加号,特殊符号转换为 ASCII HEX 值)。使用get方式提交时,把表单数据(name1=value1&name2=value2…)以键值对append到url后,用 ‘?’ 分割url和参数。使用post方式提交时,把表单数据以键值对放在请求体中传输。
get方式:
//不同的field会用"&"符号连接;空格被替换成"+";field和value间用"="联系等等
name=ryan+ou&email=ryan@rhythmtechnology.com
2.multipart/form-data:表单数据被编码为一条消息,页上的每个对应消息中的一个部分,用boundary=—————————36243265420146”分割各个部分(boundary值由浏览器生成)。它不会对字符进行编码,一般用于传输二进制文件(图片、视频、、、)
在multipart/form-data 消息中:
//每个field被分成小部分,而且包含一个value是"form-data"的"Content-Disposition"的头部;一个"name"属性对应field的ID等等
-----------------------------7cd1d6371ec
Content-Disposition: form-data; name="name"
ryan ou
-----------------------------7cd1d6371ec
Content-Disposition: form-data; name="email"
ryan@rhythmtechnology.com
-----------------------------7cd1d6371ec
Content-Disposition: form-data; name="Logo"; filename="D:\My Documents\My Pictures\Logo.jpg"
Content-Type: image/jpeg
3. text/plain:表单数据中的空格转换为 “+” 加号,但不对特殊字符编码。(get方式会这样,post时不会)