<form action="${pageContext.request.contextPath}/fileUpload" enctype="multipart/form-data" method="post">
用户名:<input type="text" name = "username">
用户头像:<input type="file" name="filename">
<input type="submit" value="提交"/>
</form>
解决:如果去掉enctype属性会发现可以获取到值了,所以问题出在enctype这个属性上;
查阅w3school有如下解释:
定义和用法
enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。
默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。
语法
<form enctype="value">
属性值
值 | 描述 |
---|---|
application/x-www-form-urlencoded | 在发送前编码所有字符(默认) |
multipart/form-data | 不对字符编码。 在使用包含文件上传控件的表单时,必须使用该值。 |
text/plain | 空格转换为 "+" 加号,但不对特殊字符编码。 |