Как загрузить файл с дополнительной информацией в Java

Я использую apache commons-fileupload загрузить файл. Но я не могу передать больше информации о приложении. Например, пользователи хотят добавить информацию о вложении при загрузке определенного файла. Поэтому я отправляю комментарии вместе с приложением. Но используйте commons-fileupload, я только получаю вложение, но не могу получить комментарии. Код ниже является формой

<form action"taskcontroller" method="post"  enctype="multipart/form-data">
        <label for="filename_1">File: </label>
        <input id="filename_1" type="file" name="filename_1" size="50"/><br/>
        comments:<input type='text' name='comments' />
        <input type="submit" value="upload" name="command" />
</form>

и код ниже, чтобы обработать запрос,

boolean isMultipart = ServletFileUpload.isMultipartContent(request);  
if (isMultipart) {  
    FileItemFactory factory = new DiskFileItemFactory();  
    ServletFileUpload upload = new ServletFileUpload(factory);  
    List<FileItem> items = upload.parseRequest(request);  
    Iterator iterator = items.iterator();  
    while (iterator.hasNext()) {  
        FileItem item = (FileItem) iterator.next();  

        if (!item.isFormField()) { //ignore the form element  
            String fileName = item.getName();  
            // TODO filesize int is it ok?  
            int size = (int) item.getSize();  
            String root = "";//Set the root  
            File path = new File(root + "/uploads");  
            if (!path.exists()) {  
                boolean status = path.mkdirs();  
            }  

            item.write(uploadedFile); //write file to disk  
        }  
    }  
}

но я не могу получить комментарии информации...

2 ответа

Проверить с поля isFormField() и получить подробную информацию о полях getFieldName() а также getString()

boolean isMultipart = ServletFileUpload.isMultipartContent(request);  
if (isMultipart) {  
    FileItemFactory factory = new DiskFileItemFactory();  
    ServletFileUpload upload = new ServletFileUpload(factory);  
    List<FileItem> items = upload.parseRequest(request);  
    Iterator iterator = items.iterator();  
    while (iterator.hasNext()) {  
        FileItem item = (FileItem) iterator.next();  
        String name;
        String comment;

   //Check for Form Field i.e. Comment field

        if (item.isFormField()) { 
        name= item.getFieldName(); //Comment Field Name
        comment = item.getString();  // Comment
        }

      //Check for attachment field

        if (!item.isFormField()) { //ignore the form element  
            String fileName = item.getName();  
            // TODO filesize int is it ok?  
            int size = (int) item.getSize();  
            String root = "";//Set the root  
            File path = new File(root + "/uploads");  
            if (!path.exists()) {  
                boolean status = path.mkdirs();  
            }  

            item.write(uploadedFile); //write file to disk  
        }  
    }  
}

Когда вы загружаете файл на сервер, прикрепляете к фотографии уникальный идентификатор и сохраняете его для комментариев в таблице комментариев, а также сохраняете фотоид в порядке таблицы комментариев для уникальной идентификации комментариев к фотографии.

Другие вопросы по тегам