我刚从BalusC阅读了this great answer关于如何使用3.0 Servlet API上传文件的信息。
我的问题是关于request.getParameter()
用于常见字段的问题。例如,如果我的表单如下所示:
<form action="/upload" method="post" enctype="multipart/form-data">
<fieldset>
<label for="description">File description:</label>
<input type="text" id="description" name="description" value="" />
<label for="uploadedFile">File:</label>
<input type="file" id="uploadedFile" name="uploadedFile" />
<input type="submit" value="Send" />
</fieldset>
</form>
按照BalusC的解释,我应该操纵part.getInputStream()
返回的InputStream来获取 description 字段的内容。这是为什么 ?我试着简单地调用request.getParameter("description")
,它似乎工作正常。
我使用Tomcat 7.0.20。
感谢您的帮助。
答案 0 :(得分:4)
我试着简单地调用request.getParameter(“description”),它似乎工作正常。
实际上,这在Servlet 3.0规范中已经指定,但直到最近才在早期版本的Glassfish中使用,即使它是参考实现。这已被报告为Glassfish issue 16740,并已在3.1.2中修复,在第3.0版发布后超过2年。
答案 1 :(得分:3)
自Servlet 3.0本身起可用。所有Servlet 3.0容器都应通过HttpServletRequest.getParameter()
使输入类型参数可用。
这是Servlet 3.0 Spec在第23页上所说的内容:
3.2文件上传
...
对于
form-data
作为Content-Disposition
但没有getParameter
的部分 filename,该部分的字符串值也可通过getParameterValues
上的HttpServletRequest
/ {{1}}方法, 使用部件的名称。