form表單的enctype類型

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==============

相關文章
相關標籤/搜索