Как возвращаться изображения из БД?

Написал серверную часть проекта на Java Spring. Для работы необходимо загружать изображения в базу данных, и по запросу возвращать на клиент. Написал ручку, которая должна подгружать определенную фотку на url, однако почему-то вместо того, чтобы просто отображать картинку в браузере, скачивается файл, который уже можно открыть в браузере. В связи с этим вопрос: как это исправить? Или быть может есть более удачное решение?

Код контроллера:

    package com.example.yamabar2.controller;

import com.example.yamabar2.entity.Image;
import com.example.yamabar2.repository.ImageRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import java.io.ByteArrayInputStream;

@RestController
@RequiredArgsConstructor
public class ImageController {
    private final ImageRepository imageRepository;

    @GetMapping("/images/{id}")
    public ResponseEntity<?> getImageById(@PathVariable Long id) {
        Image image = imageRepository.findById(id).orElse(null);
        return  ResponseEntity.ok()
                .header("fileName", image.getOriginalFileName())
                .contentType(MediaType.valueOf(image.getContentType()))
                .contentLength(image.getSize())
                .body(new InputStreamResource(new ByteArrayInputStream(image.getImageBytes())));
    }
}

Код Entity

package com.example.yamabar2.entity;

import lombok.Data;
import javax.persistence.*;

@Data
@Entity
public class Image {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @Column(nullable = false)
    private String name;
    private String originalFileName;
    private Long size;
    private String contentType;

    @Lob
    @Column(columnDefinition = "LONGBLOB")
    private byte[] imageBytes;

    @ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)
    private Product product;
}

Ответы (0 шт):