form的enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data,默认为application/x-www-form-urlencoded。

当action为get时候,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2...),然后把这个字串append到url后面,用?分割,加载这个新的url。
当action为post时候,浏览器把form数据封装到http body中,然后发送到server。

如果没有type=file的控件,用默认的application/x-www-form-urlencoded就可以了。
但是如果有type=file的话,就要用到multipart/form-data了。浏览器会把整个表单以控件为单位分割,并为每个部分加上Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件name)等信息,并加上分割符(boundary)。
如果有以下form,并选择了file1.txt上传
<form action="http://server.com/cgi/handle"
       enctype="multipart/form-data"
       method="post">
   <input type="text" name="submit-name" value="chmod777"><br />
   What files are you sending? <input type="file" name="files"><br />
</form>

则有如下body:
Content-Type: multipart/form-data; boundary=AaB03x

--AaB03x
   Content-Disposition: form-data; name="submit-name"

chmod777
   --AaB03x
   Content-Disposition: form-data; name="files"; filename="file1.txt"
   Content-Type: text/plain

... contents of file1.txt ...
   --AaB03x--

以上是我看了http://www.w3.org/TR/html401/interact/forms.html#h-17.13.1的理解,可能有误。:)

form的enctype和action相关推荐

  1. form 中Enctype=multipart/form-data 的作用

    form 中Enctype=multipart/form-data 的作用 ENCTYPE="multipart/form-data"用于表单里有图片上传. <form na ...

  2. ajax enctype设置,form设置enctype属性为'application/json'不起作用

    由于项目中需要向后台传复杂的json数据处理完然后跳转,大家的做法是用ajax提交数据然后在用location.href跳转,但是这样做需要写两个controller,正好今天百度看了可以设置form ...

  3. js 提交form表单,js更改form表单的action属性

    2019独角兽企业重金招聘Python工程师标准>>> js 提交form表单 <s:form id="formID1" action="favo ...

  4. 当FORM的ENCTYPE=quot;multipart/form-dataquot; 时request.getParameter()获取不到

    当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值. 解决方法: 提交普通表单时,在提交前: $(&q ...

  5. form表单的action属性设置相对路径

    代码如下,当form表单中的action值为savebyform.do时,该表单提交的路径会是什么呢? <form name="form1" action="sav ...

  6. Cannot retrieve definition for form bean jellyForm on action /jelly.htm

    不要每次问题都麻烦人家谷歌百度,把犯下的问题的记下来 struts1中报错: javax.servlet.jsp.JspException: Cannot retrieve definition fo ...

  7. form表单中的action属性

    form表单中的action属性的值是表单提交给的url,如果我们没有设置action属性,那么默认的表单还是提交给当前页面 <form action = "register" ...

  8. form表单的action提交写到js中来,同时onclick事件也写在js中来。其action也可以通过ajax来提交的。...

    假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情 ...

  9. html form multipart,html form 中Enctype=multipart/form-data 的作用

    ENCTYPE="multipart/form-data"用于表单里有图片上传. 表单标签中设置enctype="multipart/form-data"来确保 ...

最新文章

  1. LightGBM是什么?相对于xgboost有什么优势?如何使用randomSearchCV和lightgbm进行组合获取最优参数组合?
  2. SharePoint 2010 与 SQL Server 2012 报表服务集成
  3. 谷歌退出后百度首发财报 李彦宏称获益不少(转)
  4. 金融产品京东金融2015年战略主攻三大方向:股权众筹、农村金融和校园金融...
  5. NYOJ 99 单词拼接
  6. Unity3D的Time.timeScale
  7. 文本标点英文对齐_电脑健盘中的所有英文组合意思超值解释建议收藏
  8. loadrunner / socket level data and wininet level data
  9. Java基础学习总结(164)——别让Lombok使你的Java代码处于“亚健康”状态
  10. CommonJS模块的循环加载
  11. Linux禁止ping以及开启ping的方法
  12. 大数据系统如何提供抗击疫情信息
  13. python开发ios程序_使用Python开发iOS程序
  14. 虚拟机如何做服务器系统,sap虚拟机作为服务器(sap系统虚拟机)
  15. wordpress付费阅读_2020年27个最佳WordPress杂志主题[免费+付费]
  16. ubuntu 各版本
  17. Python中import的用法
  18. UnicodeTOGB,能够将Unicode串转换成GB码
  19. 2022-2028年中国SIP行业竞争现状及投资策略研究报告
  20. 电视尺寸与观看距离对应表

热门文章

  1. mybatis-generator-gui 如何exe化
  2. where T:new() 是什么意思
  3. kloxo 安装图解
  4. CyberArticle和Live Writer的比较
  5. jQuery: 仿select下拉框效果,点击空白关闭弹出层,判断是否被mouseover
  6. 使用 jQuery Mobile 与 HTML5 开发 Web App (十四) —— jQuery Mobile 方法下
  7. 判断来访者所用设备是iPhone、iPad或者电脑(PC)
  8. 使用@Embed嵌入元素
  9. Linux模块加载流程及如何让系统开机自动加载模块
  10. 【转载】Java线程池详解