为什么form里加上enctype="textplain

为什么form里加上enctype="textplain,第1张

表示不对特殊字符进行编码,只会将空格转为加号

form的enctype属性规定在发送表单数据之前如何对其进行编码。

默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。

语法:

<form enctype="value">

属性值:

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

multipart/form-data:不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。

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

默认是对表单数据以 "application/x-www-form-urlencoded" 进行编码。这意味着在发送前对所有字符进行编码(把 "+" 转换为空格,把特殊字符转换为 ASCII 十六进制值)。

enctype有三个属性:

如果form中没有指定enctype ,浏览器会自动添加默认的content-type:application/x-www-form-urlencodedcharset=utf-8。

application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。

multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分,上传附件用到

text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。

enctype="multipart/form-data是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form- data,才能完整的传递文件数据,进行下面的 *** 作.

别人的一个例子:

form中加入enctype="multipart/form-data"时整个表单被封装,字符将转成二进制流,因此request.getParameter("user_type")是得不到值的.给段实例做参考:

SmartUpload su = new SmartUpload()

su.initialize(pageContext)

su.upload()

String strzy=su.getRequest().getParameter("user_type")

这样就行了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11542032.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存