w3school 中的介绍 :
enctype 属性规定在将表单数据发送到服务器之前如何对其进行编码。
默认是对表单数据以 "application/x-www-form-urlencoded" 进行编码。这意味着在发送前对所有字符进行编码(把 "+" 转换为空格,把特殊字符转换为 ASCII 十六进制值)。
值 | 描述 |
---|---|
application/x-www-form-urlencoded | 在发送前对所有字符进行编码(默认)。 |
multipart/form-data | 不对字符编码。当使用有文件上传控件的表单时,该值是必需的。 |
text/plain
| 将空格转换为 "+" 符号,但不编码特殊字符。 |
实例:
<form action="${pageContext.request.contextPath}/imageUpload_saveOrUpdate.action" method="post" enctype="multipart/form-data">
<div>
<label>图片:</label>
<input type="file" name="image"/>
</div>
</div>
<div>
<input type="submit" value="上传"/>
</div>
</form>
说明:
默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。相应用的MIME类型做相应的处理。
enctype="multipart/form-data" 用于文件上传处理,数据通过二进制的形式传送到服务器端,这时如果用request是无法直接获取到相应表单的值的,而应该通过stream流对象,将传到服务器端的二进制数据解码,从而读取数据。
enctype="text/plain" 不进行任何编码,空格为“+” ,用于纯文本提交。