您的位置:首页 > Web前端 > HTML

关于HTML的FORM上传文件问题

2015-09-16 21:40 405 查看
首先,大家可以测试后一段代码

<form id="form1" runat="server">
<input type="file" name="ttt" />
<input type="submit" value="点击" />
</form>


然后在后台

var files= Request.Files;


你会发现files里面什么都没有,

为什么呢,原来是form压根就没上传 file,因为一个属性在作怪enctype

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

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

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

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

text/plain空格转换为 "+" 加号,但不对特殊字符编码。
从上表enctype的取值可以看出,默认的会编码所有字符,当有文件上传时直接抛弃了。

此时该换成

<form id="form1" runat="server" enctype="multipart/form-data">
<input type="file" name="ttt" />
<input type="submit" value="点击" />
</form>


即可。并注意input file必须要有name属性,否则也不被上传。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: