Spring boot rest настройка изображения профиля пользователя по умолчанию в реестре - PullRequest
0 голосов
/ 03 апреля 2020

Я хочу спросить, как сделать следующее: Когда пользователь создает учетную запись, я хочу, чтобы бэкэнд установил изображение профиля пользователя по умолчанию, которое я хочу сохранить в static / images / image-name.jpg. Я опубликую свою сущность Image и UserService

Image Entity

public class Image {
    @Id
    @Column(name = "image_id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long imageId;

    @Column(name = "image_name")
    private String imageName;

    @Column(name = "image_type")
    private String imageType;

    @Lob
    @Column(name = "image")
    private byte[] image;

    @OneToOne(mappedBy = "userProfilePicture")
    private User userProfilePicture;

UserServiceImpl

    @Override
    public User createUser(UserDto userDto) {
        User user = new User();
        User userExists = userRepository.findUserByEmail(userDto.getEmail());
        if(userExists == null) {
            user.setEmail(userDto.getEmail());
            user.setName(userDto.getName());
            user.setPassword(bCryptPasswordEncoder.encode(userDto.getPassword()));
            user.setRoles(roleRepository.findUsersByRole("USER"));
            user.setDateAdded(LocalDateTime.now());

            userRepository.save(user);
        } else {
            throw new ApiRequestException("Email exists!");
        }
        return user;
    }

Как я могу получить изображение из static / images? и установить его в сервисе. Заранее спасибо, если вам нужно что-то более конкретное c из кода, я вставлю это сюда. Ура!

1 Ответ

1 голос
/ 03 апреля 2020

Вы можете прочитать файл, используя Files.readAllBytes(), как показано в этом ответе: { ссылка }

Затем, когда изображение загружено в переменную byte [], просто установите это в поле класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...