Как определить, является ли элемент ввода формы файла типа пустым - PullRequest
0 голосов
/ 16 мая 2010

У меня есть код, который читает файл через поле формы типа file

 <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)){


    ....

Ответы [ 2 ]

4 голосов
/ 16 мая 2010

Вы не можете позвонить item.equals( null ), когда элемент равен нулю. Вы должны проверить это так:

if( item == null ) {
   ...
}
0 голосов
/ 31 декабря 2016

Чтобы проверить наличие пустых файлов в форме при загрузке любого файла на сервер, лучше всего следуйте моим инструкциям 1. используйте @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;
    }

Описание кода

  • Код получения файла с использованием сборки в классе "Часть"
  • После этого он назначит все содержимое части объекта, которую мы вызываем, используя request.getPart (image), где «image» - это имя файла, введенного в поле вашей формы. И присвоить его объекту String "header"
  • Если вы загрузите какой-либо файл в поле ввода, «заголовок» будет содержать подстроку «имя файла», и если это произойдет, это означает, что вы загружаете файл и назначаете его для ввода объекта InputStream, в противном случае это не файл и ввод InputStream по умолчанию будет назначен на ноль
  • вернуть объект InputStream

    И в вашем методе get или post вызовите вышеуказанный метод с кодом ниже

    InputStream school_pic = getImageStream (запрос, "schoolPic");

  • где "schoolPic" - это имя вашего входного файла в форме

  • Это все мерзко

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...