为什么J2EE request.getParameNames()无法获取`<input type =“file”/>`的参数名称

时间:2015-03-23 10:09:22

标签: java java-ee request

HTML:

<form method="post" enctype="multipart/form-data" >
    <input type="file" name="uimage" />
    <input type="text" name="uname" />
    <input type="text" name="uid" />
    <input type="submit" value="ok" />
</form>

的java:

for (Enumeration e = request.getParameterNames(); e.hasMoreElements();) {
    System.out.println("paramName:" + e.nextElement());
}

输出:

paramName:uid
paramName:uname

我不知道为什么输出不包含paramName:uimage。 它真的让我感到困惑,为什么它无法在java

中获取<input type='file'>的参数名称

我使用SpringMVC

2 个答案:

答案 0 :(得分:1)

for(String str : ((MultipartHttpServletRequest) request).getMultiFileMap().keySet()) {
    System.out.println("name:" + str);
}

答案 1 :(得分:0)

正如user3145373ツ所说,它不在请求参数中。提交的文件可能很大,因此它们会被放置在请求体中。

您可能需要getPart方法:

Path uimageFile = Files.createTempFile(null, null);
request.getPart("uimage").write(uimageFile.toString());