检查标记<input name =“file”/>的null

时间:2012-09-29 02:24:37

标签: servlets

  

可能重复:
  How to upload files to server using JSP/Servlet?

我有一个带有输入标记的jsp,其name属性为“file”,我通过它将照片上传到数据库。在更新信息时,有时我不想上传新照片。在那种情况下,我必须在我的servlet中检查null。我试过这个

 [...]

servlet:

if(request.getParameter("file")!=null)

   String imagePath=request.getParameter("file");

[...]

但这不起作用。有人可以提出解决方案吗?

1 个答案:

答案 0 :(得分:2)

只有在根本没有提交字段时,null检查才有效。但是,提交空字段与不提交字段不同。未填写但已提交的字段最终为空字符串。因此,如果值不仅仅是一个空字符串,您还需要执行额外的检查。

换句话说:

String fieldname = request.getParameter("fieldname");

if (fieldname != null && !fieldname.isEmpty()) {
    // It's submitted *and* filled out.
}

对于具体问题

无关,这种抓取上传文件的方法存在严重问题。只有当Web服务器和Web浏览器碰巧在物理上运行相同的计算机时,此方法才有效。花时间仔细浏览两个链接:

当以正确的方式抓取上传的文件时,它不会以String的方式到达,因此不需要进行空字符串检查。