【问题标题】:How to detect if a form input element of type file is empty如何检测文件类型的表单输入元素是否为空
【发布时间】:2011-02-20 01:40:54
【问题描述】:

我有一些代码通过文件类型的表单字段读取文件

 <input type="file" ... />

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

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

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

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

if(item.equals(null)){


    ....

【问题讨论】:

    标签: java forms servlets file-upload validation


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢 - 我以为我试过了,但看起来很有效。时间一到,我会尽快接受你的答复。
    【解决方案2】:

    要在将任何文件上传到服务器时检查表单中的任何空文件输入,最好按照我的说明进行操作 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;
        }
    

    代码说明

    • 代码使用“Part”类中的构建获取文件
    • 之后它将分配我们使用 request.getPart(image) 调用的对象部分的所有内容,其中“image”是在表单字段中输入的文件的名称。并将其分配给 String 对象“header”
    • 如果您将任何文件上传到输入字段,“标题”将包含子字符串“文件名”,如果是,则表示您上传文件并将其分配给 InputStream 对象输入,否则为无文件和 InputStream 输入默认会赋值为null
    • 返回 InputStream 对象

      并在您的 get 或 post 方法中使用以下代码调用上述方法

      InputStream school_pic = getImageStream(request, "schoolPic");

    • 其中“schoolPic”是表单中输入文件的名称

    • 这都太花哨了

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 2021-06-28
    • 2012-04-23
    • 2019-05-14
    • 1970-01-01
    相关资源
    最近更新 更多