form表单的enctype类型html
HTML forms provide three methods of encoding. app
application/x-www-form-urlencoded (the default)ide
multipart/form-data编码
text/plainurl
上传文件的表单中<form>要加属性enctype="multipart/form-data" ,不少人只是死记硬背知道上传表单要这么 写,知其然而不知其因此然。spa
那到底为何要添加这个属性呢?它是什么意思呢?它又有什么其余可选值呢? 3d
其实form表单在你不写enctype属性时,也默认为其添加了enctype属性值,默认值是enctype="application/x-www-form-urlencoded"。这个属性管理的是表单的MIME编码,共有三个值可选: rest
application/x-www-form-urlencoded (默认值)code
multipart/form-dataorm
text/plain
其中
①application/x-www-form-urlencoded是默认值,你们可能在AJAX里见过这 个:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");这两个要作的是同一件事情,就是设置表单传输的编码。在AJAX里不写有可能会报错,可是在HTML的form表单里是能够不写 enctype="application/x-www-form-urlencoded"的,由于默认HTML表单就是这种传输编码类型。
②multipart-form-data是用来指定传输数据的特殊类型的,主要就是咱们上传的非文本的内容,好比图片或者mp3等等。
③text/plain是纯文本传输的意思,在发送邮件时要设置这种编码类型,不然会出现接收时编码混乱的问题 ,网络上常常拿text/plain和 text/html作比较,其实这两个很好区分,前者用来传输纯文本文件,后者则是传递html代码的编码类型,在发送头文件时才用得上。①和③都不能用 于上传文件,只有multipart/form-data才能完整的传递文件数据。
摘自:http://www.cnblogs.com/mumue/archive/2012/05/24/2515984.html
application/x-www-form-urlencoded报文示例
POST /thread_loan/rest/accounts/bankCard HTTP/1.1 Host: localhost:8080 Authorization: Basic YWRtaW46eW91eGluMTEyNg== Cache-Control: no-cache Postman-Token: f5ab84b2-f412-f03d-2b5b-c5327369835e Content-Type: application/x-www-form-urlencoded lendReqId=726241&accountNo=12143124352323&cityCode=800&accountBranchBank=hello+world
multipart-form-data报文示例
POST /thread_loan/rest/accounts/bankCard HTTP/1.1 Host: localhost:8080 Authorization: Basic YWRtaW46eW91eGluMTEyNg== Cache-Control: no-cache Postman-Token: b5989aca-f0c1-6383-d686-ecf4c3dc91b8 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="lendReqId" 726241 ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="accountNo" 12143124352323 ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="cityCode" 800 ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="accountBranchBank" hello world ----WebKitFormBoundary7MA4YWxkTrZu0gW
==============END==============