Я работаю над приложением, в котором вы можете зарегистрировать элементы в базе данных, используя форму.Форма имеет несколько полей ввода текста и поле ввода для загрузки изображения для элемента.
Если я пытаюсь добавить новый элемент, поле загрузки изображения и все остальные поля остаются пустыми (как и должно быть).Но когда я хочу обновить модель, только текстовые поля извлекают сохраненную информацию из базы данных.Это означает, что мне нужно загрузить одно и то же изображение, чтобы опубликовать форму / обновить информацию, даже если я не делаю никаких изменений.Есть ли способ «предварительной загрузки» изображения с сервера в форму редактирования, чтобы пользователю не приходилось загружать его?
Я использую Thymeleaf для представлений.
Метод обслуживания элементов для сохранения элементов:
@Override
public void save(Item item, MultipartFile file) {
try {
String IMAGE_LOCATION = "/src/main/resources/static/images/";
String projectDir = System.getProperty("user.dir");
String totalPath = projectDir + IMAGE_LOCATION;
Path path = Paths.get(totalPath + file.getOriginalFilename());
Files.copy(file.getInputStream(),path);
} catch (IOException e) {
e.printStackTrace();
}
item.setImageName(file.getOriginalFilename());
itemRepository.save(item);
}
Просмотр:
<form th:action="@{/save}" method="post" modelAttribute="item" enctype="multipart/form-data">
<input type="hidden" th:value="${item.item_id}" name="item_id">
<div class="form-group">
<input type="text" class="form-control" th:value="${item.name}" placeholder="Name" name="name">
</div>
<div class="form-group">
<input type="text" class="form-control" th:value="${item.quantity}" placeholder="Quantity" name="quantity">
</div>
<div class="form-group">
<input type="file" class="form-control" name="file"/>
</div>
<button class="btn btn-success">Add item</button>
</form>