我有一个JSP / HTML表单,其中有2个元素。一个是选择下拉列表,另一个是文件上传框(输入类型=“文件”)。我使用POST方法和enctype作为form-mpartpart。现在我能够使用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。
答案 0 :(得分:0)
请确保您发送的内容类型(确切地说)是两个
中的一个根据您链接的API,该类仅处理后一种类型。
或者,您可以尝试Apache commons FileUpload库。
答案 1 :(得分:0)
只需查看javadoc for the getFileNames() method - 它说,如果页面上任何文件输入为空,结果为空,只有当页面上根本没有文件输入时才返回空枚举。不知道为什么它实现了这个奇怪的,但文档说是这样......
编辑:我认为我弄错了 - 在枚举中应该有一些内容,即使文件输入是空的(或者在这种情况下你应该得到空枚举...不知道,文档不是我很清楚)。