Как не получить ошибку при редактировании данных, если я не буду загружать ни одно изображение в юзере

Поэтому, когда я обновляю данные для пользователя, я столкнулся с ошибкой, что даже если у меня уже есть изображение, загруженное для пользователя в моей БД, оно хочет снова загрузить изображение. Может ли кто-нибудь сказать мне, как сохранить пользователя без загрузки изображения, но загруженное изображение остается в моей БД?

Ошибка java.IOException: не удалось сохранить файл изображения:

вызвано: java.nio.file.DirectoryNotEmptyException: изображение профиля/4

вот мой контроллер

@PostMapping("/profile/save")
public String saveProfile(Profile profile, Model model, @RequestParam("image") MultipartFile multipartFile,@RequestParam(value = "userId", required=false) Long userId) throws IOException {
profile.setUser(userRepo.findById(userId).get());
String fileName = StringUtils.cleanPath(multipartFile.getOriginalFilename()) ;
String uploadDir - "profile-image/"+ profile.getId();
FileUploadUtil.saveFile(uploadDir, fileName, multipartFile);
profile.setProfileImg(fileName);
profileService.saveProfile(profile);
return "redirect:/user/profile";

Что такое FileUploadUtil?

tobifasc 16.02.2023 08:54

О, извините, это класс Java, я включил его сейчас.

uncleben666 16.02.2023 09:02
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
2
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В вашем FileUploadUtil классе ошибка. Вы должны создать каталог только в том случае, если он не существует:

public static void saveFile(String uploadir, String fileName, MultipartFile multipartFile) throws IOException {
    Path uploadPath = Paths.get(uploadDir);
    if (!Files.exists(uploadPath)) {
        Files.createDirectories(uploadPath);
    }
    try (InputStream inputStream = multipartFile.getInputStream()) {
        Path filePath = uploadPath. resolve(fileName);
        System.out.printIn(filePath.toFile()-getAbsolutePath()+"File Path*******");
        Files.copy(inputStream, filePath, StandardCopyOption.REPLACE_EXISTING);
    } catch (IOException ioe) {
        throw new IOException("Could not save image file: " + fileName, ioe);
    }
}

Спасибо! Можете ли вы сказать мне пример кода, так как я следовал только учебнику здесь: codejava.net/frameworks/spring-boot/…

uncleben666 16.02.2023 10:11

Вы только посмотрите на эту строчку if (!Files.exists(uploadPath)). Перед Files.exists стоит восклицательный знак

tobifasc 16.02.2023 10:31

Да, как я могу сохранить имя файла в скрытом поле формы?

uncleben666 21.02.2023 01:29

Я не совсем понимаю, что вы имеете в виду. Динамически заполнять скрытый ввод после того, как событие change запускается при вводе файла? Возможно, вам следует открыть еще один вопрос, если вы не можете найти решение

tobifasc 21.02.2023 07:48

Другие вопросы по теме