Как загрузить данные формы вместе с изображением в spring boot

#java #html #spring

#java #HTML #spring

Вопрос:

Я работаю над usecase для загрузки сведений о студенте вместе с его изображением в spring boot. Класс сущности выглядит следующим образом.

 public class Student{
   private int rollNo;
   private String name;
   // few more fields
   
   @Lob 
   private byte[] picture;

  // getters setters
 
} 


JSP file

<!DOCTYPE html>
<html>
<head>
<title>Student Registration</title>
</head>
<body>

<form action="save" method="post" enctype="multipart/form-data">
  <input type="text" name="rollNo"/>
  <input type="text" name="name"/>
  <!-- some more fields -->
  <input type="file" name="picture"/>
  <input type="submit" value="Registration">
</form>

</body>
</html>
 
  1. Как я должен обрабатывать данные формы в моем методе контроллера? В двух словах, как написать метод контроллера для обработки как данных формы, так и изображения?

Ответ №1:

 the very basic idea could be as follows 

@RestController
public class ImageUploadController {

@RequestMapping(value="/upload", method=RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<Object> uploadFile(@RequestParam(required=true, value="picture") MultipartFile file, @RequestParam(name = "rollNo") String rollNo, @RequestParam(name = "name") String name) {

  }
}
 

Комментарии:

1. что делать, если класс entity содержит большее количество полей, которых может не быть в этом случае. Нужно ли указывать @RequestParam(name = «XYZ») для всех полей? или есть какой-либо другой более короткий способ? я имею в виду, можем ли мы связать их как объект?