In my web Application, I want to allow "client side users" to upload large amount of image files, and "customer side users" must able to see a grid of uploaded image files.
В этом сценарии все файлы изображений имеют право на загрузку, чтение, удаление и редактирование.
В основном я использую java-технологии, но сомневаюсь,


Перейдите в этот хранилище и перейдите в ветку display-image-from-db. Базовый подход следующий:
В сущности у вас есть:
@Lob
private Byte[] image;
ImageController.java - вы получаете образ через MultipartFile
@PostMapping("recipe/{id}/image")
public String handleImagePost(@PathVariable String id, @RequestParam("imagefile") MultipartFile file){
imageService.saveImageFile(Long.valueOf(id), file);
return "redirect:/recipe/" + id + "/show";
}
Вызовите imageService, чтобы сохранить изображение, передав file в качестве аргумента.
Служба в основном копирует содержимое изображения в массив байтов, и, наконец, вы назначаете этот массив байтов своей сущности.
@Override
@Transactional
public void saveImageFile(Long recipeId, MultipartFile file) {
try {
Recipe recipe = recipeRepository.findById(recipeId).get();
Byte[] byteObjects = new Byte[file.getBytes().length];
int i = 0;
for (byte b : file.getBytes()){
byteObjects[i++] = b;
}
recipe.setImage(byteObjects);
recipeRepository.save(recipe);
} catch (IOException e) {
//todo handle better
log.error("Error occurred", e);
e.printStackTrace();
}
}
Полный исходный код можно найти в репозитории, это определенно поможет. Однако я настоятельно рекомендую хранить файлы на диске, а не в БД. БД должна хранить только путь к файлам. Вот пример такого решения: ссылка на сайт
TL; DR
Ваше здоровье!
Это ответ только по ссылке (на вопрос, основанный в первую очередь на мнении). Было бы лучше, если бы в ваш ответ был включен соответствующий контент из связанных источников, поэтому, если какая-либо из связанных страниц исчезнет, решение сохранится.