如何检查 HttpServletRequest getPart("...") 是否设置

Don*_*ati 3 java forms jsp servlets

我正在将 CSV 文件上传到 Java servlet。我的 HTML 表单如下所示:

<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file">
<input type="submit" name="submitBt" id="submitBt">
</form>
Run Code Online (Sandbox Code Playgroud)

在我的 servlet 中,我执行以下操作来检索文件:

public void uploadCsv(HttpServletRequest request) {
request.getPart("file")
...
}
Run Code Online (Sandbox Code Playgroud)

设置文件后,servlet 就会开始工作,一切正常。

我的问题是,我在同一个 JSP 中有第二个表单。因此,当提交表单时,我想测试是否设置了包含 CSV 文件的名为“file”的输入。

我尝试了以下操作:

if (req.getParameter("file") != null)
Run Code Online (Sandbox Code Playgroud)

总是假的

if (request.getParameterMap().containsKey("file"))
Run Code Online (Sandbox Code Playgroud)

也总是假的

if (req.getPart("file") != null)
Run Code Online (Sandbox Code Playgroud)

如果文件未设置则抛出异常

帮助!d:

小智 5

表单部分像文件一样发送到服务器,因此您可以执行此操作...

boolean isthereafile;
if(request.getPart("file").getSize()>0){
isthereafile = true;
}
if(request.getPart("file").getSize()<=0){
isthereafile = false;
}
Run Code Online (Sandbox Code Playgroud)