如何检测类型文件的表单输入元素是否为空

时间:2010-05-16 11:05:24

标签: java forms servlets file-upload validation

我有一些代码通过类型文件

的表单字段读取文件
 <input type="file" ... />

我想为用户提供另一种选择,即为文件提供网址,而不是必须上传,因为许多人已经在线。

如何在服务器端检测此字段何时为空。我正在使用Apache Commons FileUpload

FileItemStream item = iter.next();
    name = item.getFieldName();
    stream = item.openStream();
        if(!item.isFormField()){
            if(item.toString()!=""){
                ....

我需要检测item何时为空。上述代码不起作用,也不使用:

if(item.equals(null)){


    ....

2 个答案:

答案 0 :(得分:4)

当item为null时,您无法调用item.equals( null )。你必须像这样测试它:

if( item == null ) {
   ...
}

答案 1 :(得分:-1)

要检查表单中的任何空文件输入,同时按照我的说明将任何文件上传到服务器  1.在servlet类的顶部使用@MultipartConfig()  2.将以下方法添加到您的班级

private InputStream getImageStream(HttpServletRequest request, String image){       
        try {
            Part part = request.getPart(image);
            String header = part.getHeader("content-disposition");
            InputStream input = null;
            if(header.contains("filename")){
                input =  part.getInputStream();
            }            
            return input;
        } catch (IOException | ServletException e ){
            e.printStackTrace();
        }
        return null;
    }

代码说明

  • 代码使用类#34; Part&#34;
  • 中的build来获取文件
  • 之后,它将使用request.getPart(image)分配我们调用的对象部分的所有内容,其中&#34; image&#34;是表单字段中输入的文件的名称。并将其分配给String对象&#34; header&#34;
  • 如果您将任何文件上传到输入字段&#34;标题&#34;将包含一个sub sting&#34; filename&#34;如果它这样做意味着你上传一个文件并将其分配给InputStream对象输入,否则就是没有文件,默认情况下InputStream输入将被赋值为null
  • 返回InputStream对象

    在你的get或post方法中,使用下面的代码调用上面的方法

    InputStream school_pic = getImageStream(request,&#34; schoolPic&#34;);

  • 其中&#34; schoolPic&#34;是

  • 形式的输入文件的名称
  • 这就是所有的gusy