文件上传 HTML
标签的 enctype 属性


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





免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM