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