HTML <form> 标签的 enctype 属性
例如:
<form action="form_action.do" enctype="">
<p>First name: <input type="text" name="fname" /></p>
<p>Last name: <input type="text" name="lname" /></p>
<input type="submit" value="Submit" />
</form>
enctype 属性
是规定在发送到服务器之前应该如何对表单数据进行编码(MIME编码)。
服务器将 MIME标志符放入传送的数据中来告诉浏览器使用哪种插件读取相关文件。
A:application/x-www-form-urlencoded 默认的
就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。
B:multipart/form-data
不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
是用来制定传输数据的特殊类型的,主要就是我们上传的非文本的内容,比如图片或是是mp3等等。
enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去。
C:text/plain
空格转换为 "+" 加号,但不对特殊字符编码。
是纯文本传输的意思,在发邮件的时候要设置这种编码类型,否则会出现接收时编码混乱的问题。
网络上经常拿text/plain和 text/html做比较,其实这两个很好区分,前者用来传输纯文本文件,
后者则是传递html代码的编码类型,在发送头文件时才用得上。
①和③都不能用于上传文件,只有multipart/form-data才能完整的传递文件数据
补充:
MIME,它的英文全称是"Multipurpose Internet Mail Extensions" 多功能Internet 邮件扩充服务,
它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。
服务器会将它们发送的多媒体数据的类型告诉浏览器,而通知手段就是说明该多媒体数据的MIME类型,
从而让浏览器知道接收到的信息哪些是MP3文件,哪些是Shockwave文件等等。
服务器将 MIME标志符放入传送的数据中来告诉浏览器使用哪种插件读取相关文件。
简单说,MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,
浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。
浏览器接收到文件后,会进入插件系统进行查找,查找出哪种插件可以识别读取接收到的文件。
如果浏览器不清楚调用哪种插件系统,它可能会告诉用户缺少某插件,或者直接选择某现有插件来试图读取接收到的文件,
后者可能会导致系统的崩溃。传输的信息中缺少MIME标识可能导致的情况很难估计,
因为某些计算机系统可能不会出现什么故障,但某些计算机可能就会因此而崩溃。
常见的MIME类型
超文本标记语言文本 .html,.html text/html
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
GIF图形 .gif image/gif
JPEG图形 .jpeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar