Od 2 dni borykam się się z zapisem ścieżki zdjęcia do bazy jako String a następnie odwołując się przez nią wyświetlenie tego zdjęcia na widoku z pomocą Thymeleaf'a. Mam encję employee a w niej name, age i własnie photo. Przy użyciu Thymeleaf wysyłam formularz w którym wpisuje dane pracownika i wybieram zdjęcie z pulpitu i klikam wyślij. Próbowałem na kilka sposobów i żadne nie działa. Mam w formularzu już
enctype="multipart/form-data"
Mam taki kontroler
@RequestMapping(value = "/save-employee", method = RequestMethod.POST, produces = MediaType.TEXT_HTML_VALUE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public String saveNewEmployee(@Valid Employee employee, @RequestParam(value = "filename") MultipartFile file, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "admin/employee/newEmployee";
}
else {
if (!file.isEmpty()) {
try {
UUID uuid = UUID.randomUUID();
String filename = "/static/upload_" + uuid.toString();
byte[] bytes = file.getBytes();
File fsFile = new File(filename);
fsFile.createNewFile();
BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(fsFile));
stream.write(bytes);
stream.close();
logger.info("File {} has been successfully uploaded as {}", new Object[]{file.getOriginalFilename(), filename});
}
catch (Exception e) {
logger.error("File has not been uploaded", e);
}
}
else {
logger.error("Uploaded file is empty");
}
employee.setFilename(file.getOriginalFilename());
service.save(employee);
return "redirect:/employees";
}
}
Myślę ze żeby było dobrze to należy zmienić położenie zdjęcia z pulpitu na położenie w plikach projektu w static. Czy ktoś miał już podobny problem? A jak nie to czy ktoś ma pomysł jak to ugźć?