1

我有一个 JSP/HTML 表单,其中有 2 个元素。一个是选择下拉列表,另一个是文件上传框(输入类型 =“文件”)。我使用 POST 方法和 enctype 作为 form-multipart。现在我能够使用MultipartRequest对象访问下拉列表和文件。没问题。

但是当我不上传任何文件并且当我在接收表单中使用代码时

MultipartRequest multipartRequest = new MultipartRequest(request,".",5*1024*1024);
String dummySelect= (String) multipartRequest.getParameter("dummy");
out.println("<BR>select is "+dummySelect);
Enumeration files = multipartRequest.getFileNames();

现在理想情况下,如果我不上传任何文件,我应该得到一个空枚举器。意思

while(files.hasMoreElements())应该评估为 false 没有发生。谁能告诉我为什么?这会导致 nullPointerException。

4

2 回答 2

0

请确保您发送的内容类型是(完全)两者之一

  • 应用程序/x-www-form-urlencoded
  • 多部分/表单数据

根据您链接的 API,该类仅处理后一种类型。

或者,您可以尝试 Apache commons FileUpload库。

于 2009-08-31T10:20:34.830 回答
0

只需查看getFileNames() 方法的 javadoc - 它说,如果页面上任何文件输入为空,则结果为空,只有当页面上根本没有文件输入时才返回空枚举。不知道为什么它的实现如此奇怪,但文档是这样说的......

编辑:我想我完全错了 - 即使文件输入为空,枚举中也应该有一些东西(或者在这种情况下你应该得到空枚举......不知道,文档不是很清楚我)。

于 2009-08-31T10:24:52.310 回答