Хранение фотографий или больших двоичных файлов в RDMS не рекомендуется. Поэтому я хотел бы сохранить фотографию в файловой системе сервера и сохранить только местоположение фотографии в Postgres SQL. Теперь моя сущность выглядит так: -
@Entity
public class Profile {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
String displayName;
String picturePath;
@NotNull
Date birthDate;
@NotNull
String gender;
}
Класс контроллера как: -
@PostMapping(path = "/profile")
public ResponseEntity<?> addorUpdateProfile(@RequestBody Profile profile) {
profileService.saveOrUpdateExpense(profile);
return new ResponseEntity<>("Expense added succcessfully", HttpStatus.OK);
}
Я должен сохранить фактическую фотографию от пользователя. Поэтому у меня должен быть файл MultipartFile в моем почтовом запросе. Позже я попытался обновить свой контроллер следующим образом:
@PostMapping(path = "/profile")
public ResponseEntity<?> addorUpdateExpense(@RequestBody Profile profile, @RequestParam("file") MultipartFile file) {
// I will save the file here.
profileService.saveOrUpdateExpense(profile);
return new ResponseEntity<>("Expense added succcessfully", HttpStatus.OK);
}
Но я пытаюсь почтальоном получить сообщение об ошибке: -
{
"timestamp": "2020-02-24T16:48:24.117+0000",
"status": 415,
"error": "Unsupported Media Type",
"message": "Content type 'multipart/form-data;boundary=--------------------------427089632904546982882381;charset=UTF-8' not supported",
"path": "/profile"
}
Запрос почтальона: -
Как мне спроектировать мой стол или контроллер? Чтобы соответствовать этим требованиям?