html 第11章 ENCTYPE html 第11章 ENCTYPE

2022-08-12

为什么上传文件的表单里面要加一个属性 ENCTYPE = MULTIPART/FORM-DAT

①、enctype 的三个属性值

enctype 这个属性管理的是表单的 MIME 编码。共有三个值可选:

A、application/x-www-form-urlencoded

该值是默认值,作用是设置表单传输的编码。

例如我们在 ajax 中见过 xmlHttp.setRequestHeader("Content-Type","application/x-www-form- urlencoded");

如果不写会报错的,但是在 html 的 form 表单里是可以不写 enctype=application/x-www-form-urlencoded,因为默认的 html 表单就是这种传输编码类型的。

B、multipart/form-data

该值是用来制定传输数据的特殊类型的,主要就是我们上传的非文本的内容,比如图片或是 mp3 等等。

C、text/plain

该值是纯文本传输的意思,在发邮件的时候要设置这种编码类型,否则会出现接收时编码混乱的问题。

网络上经常拿 text/plain 和 text/html 做比较,其实这两个很好区分,前者用来传输纯文本文件,后者则是传递 html 代码的编码类型,在发送头文件时才用得上。

A和C都不能用于上传文件,只有 multipart/form-data 才能完整的传递文件数据。

②、MIME

A、简介

上面提到的 MIME,它的英文全称是“Multipurpose Internet Mail Extensions" 多功能 Internet 邮件扩充服务,它是一种多用途网际邮件扩充协议。

在1992 年最早应用于电子邮件系统,但后来也应用到浏览器。

服务器会将它们发送的多媒体数据的类型告诉浏览器,而通知手段就是说明该多媒体数据的 MIME 类型,从而让浏览器知道接收到的信息哪些是 mp3 文件,哪些是 Shockwave 文件等等。

服务器将 MIME 标志符放入传送的数据中来告诉浏览器使用哪种插件读取相关文件。

B、含义

简单说,MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。

多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

C、作用

浏览器接收到文件后,会进入插件系统进行查找,查找出哪种插件可以识别读取接收到的文件。如果浏览器不清楚调用哪种插件系统,它可能会告诉用户缺少某插件,

或者直接选择某现有插件来试图读取接收到的文件,后者可能会导致系统的崩溃。

传输的信息中缺少 MIME 标识可能导致的情况很难估计,因为某些计算机系统可能不会出现什么故障,但某些计算机可能就会因此而崩溃。

D、常见的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

E、IANA

Internet 中有一个专门组织 IANA 来确认标准的 MIME 类型,但 Internet 发展的太快,很多应用程序等不及 IANA 来确认他们使用的 MIME 类型为标准类型。

因此他们使用在类别中以 x-开头 的方法标识这个类别还没有成为标准,例如:x-gzip,x-tar等。事实上这些类型运用的很广泛,已经成为了事实标准。

只要客户机和服务器共同承认这个 MIME 类型,即使它是不标准的类型也没有关系,客户程序就能根据 MIME 类型,采用具体的处理手段来处理数据。

而 Web 服务器和浏览器(包括操作系统)中,缺省都设置了标准的和常见的 MIME 类型,只有对于不常见的 MIME 类型,才需要同时设置服务器和客户浏览器,以进行识别。

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开微信扫一扫,即可进行扫码打赏哦

阅读 571