HTML <form> 标签的 enctype 属性

1. enctype 的定义和用法

  enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。

  默认地,表单数据会编码为 "application/x-www-form-urlencoded"。

  就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。

2. enctype 有哪些值

描述
application/x-www-form-urlencoded 在发送前编码所有字符(默认)
multipart/form-data

不对字符编码。

在使用包含文件上传控件的表单时,必须使用该值。

text/plain 空格转换为 "+" 加号,但不对特殊字符编码。

3. 说明:

1)所谓的设置表单的MIME编码,就是设置enctype的值。默认值为"application/x-www-form-urlencoded",默认值不支持文件上传。

  如果在服务器端要通过Request对象来获取相应表单域的值,则应该将enctype属性设置为application/x-www-form-urlencoded值(即默认值,可以不显示设置)。

2)为什么上传文件要设置enctype="multipart/form-data"?

  因为:设置enctype为multipart/form-data值后,不对字符编码,则数据通过二进制的形式传送到服务器端,这时如果用request是无法直接获取到相应表单的值的,而应该通过stream流对象,将传到服务器端的二进制数据解码,从而读取数据。
  如果要上传文件的话,是一定要将encotype设置为multipart/form-data的。

  

参考文章地址:

http://www.zgguan.com/doc/w3c/tags/att_form_enctype.asp.htm

http://www.jb51.net/web/165444.html

原文地址:https://www.cnblogs.com/zj0208/p/6278607.html