博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
form表单的enctype类型
阅读量:7000 次
发布时间:2019-06-27

本文共 2119 字,大约阅读时间需要 7 分钟。

hot3.png

form表单的enctype类型

HTML forms provide three methods of encoding. 

  • application/x-www-form-urlencoded (the default)

  • multipart/form-data

  • text/plain

上传文件的表单中<form>要加属性enctype="multipart/form-data" ,很多人只是死记硬背知道上传表单要这么 写,知其然而不知其所以然。

那到底为什么要添加这个属性呢?它是什么意思呢?它又有什么其他可选值呢? 

其实form表单在你不写enctype属性时,也默认为其添加了enctype属性值,默认值是enctype="application/x-www-form-urlencoded"。这个属性管理的是表单的MIME编码,共有三个值可选: 

  • application/x-www-form-urlencoded (默认值)

  • multipart/form-data

  • 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才能完整的传递文件数据。

摘自:

 

application/x-www-form-urlencoded报文示例

POST /thread_loan/rest/accounts/bankCard HTTP/1.1Host: localhost:8080Authorization: Basic YWRtaW46eW91eGluMTEyNg==Cache-Control: no-cachePostman-Token: f5ab84b2-f412-f03d-2b5b-c5327369835eContent-Type: application/x-www-form-urlencodedlendReqId=726241&accountNo=12143124352323&cityCode=800&accountBranchBank=hello+world

multipart-form-data报文示例

POST /thread_loan/rest/accounts/bankCard HTTP/1.1Host: localhost:8080Authorization: Basic YWRtaW46eW91eGluMTEyNg==Cache-Control: no-cachePostman-Token: b5989aca-f0c1-6383-d686-ecf4c3dc91b8Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW----WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="lendReqId"726241----WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="accountNo"12143124352323----WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="cityCode"800----WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="accountBranchBank"hello world----WebKitFormBoundary7MA4YWxkTrZu0gW

==============END==============

转载于:https://my.oschina.net/xinxingegeya/blog/468330

你可能感兴趣的文章
使用 NuGet 下载最新的 Rafy 框架及文档
查看>>
在VS中添加lib库的三种方法
查看>>
WPF 的毛玻璃效果
查看>>
QQ坦白说异常火爆!小伙平凡遭到妹子表白,编程技术是时候登场了
查看>>
回顾小程序 2018 年三足鼎立历程,2019 年 BAT 火力全开!
查看>>
PHP开发:架构师三十秒轻松总结 “PHP入门小知识”
查看>>
我只想深耕技术写代码,公司却把我推上管理岗,怎么办?
查看>>
这些研发管理经验,聚合起了8000余名技术人员
查看>>
多项福利提高老用户满意度,华为打造有温度的手机品牌
查看>>
华兴资本确定IPO发行价 募集资金将达3.96亿美元
查看>>
登录五大联赛!国足当家前锋武磊确定加盟西班牙人
查看>>
2019年“欢乐春节”系列活动在曼谷启动
查看>>
日本奥委会主席公开否认东京申奥“贿选”
查看>>
马云关于商业与科技结合的奥秘,阿里云生态作出了诠释
查看>>
深入理解 MyBatis的二级缓存的设计原理
查看>>
Mysql中使用流式查询避免数据量过大导致OOM
查看>>
【译】你不知道的 Chrome 调试工具技巧 第二十四天:最后一天,元旦牛逼
查看>>
Vue.js快速入门
查看>>
Ios中微信页面返回上一页去除缓存几种常见思路
查看>>
es8(字符串,对象)
查看>>