码迷,mamicode.com
首页 > 其他好文 > 详细

form表单的enctype=‘multipart/form-data‘

时间:2015-03-27 22:28:37      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

enctype=‘multipart/form-data‘


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

摘自:http://www.cnblogs.com/mumue/archive/2012/05/24/2515984.html


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


form表单的enctype=‘multipart/form-data‘

标签:

原文地址:http://my.oschina.net/xinxingegeya/blog/392891

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!