Springboot

Springboot_ 이미지 보여주기

JunsC 2024. 8. 26. 00:08
728x90

스프링부트에서 정적 파일인 이미지를 어떻게 보여주는지 다시한번 구글링해보았다.

여러가지 방법이 있었던것 같은데 나는 정적인 이미지 파일이니까 해당 파일이 있는 위치에서 바로 불러오고 싶었다.

그래서 한번 찾아보았다..

    @GetMapping("/{imageName}")
    public ResponseEntity<byte[]> getImage(@PathVariable String imageName) throws IOException {
        // 여기서는 예를 들어 images 디렉토리에서 이미지를 로드합니다
        Resource imgFile = new ClassPathResource("static/images/" + imageName);
        
        InputStream in = imgFile.getInputStream();
        byte[] imageBytes = StreamUtils.copyToByteArray(in);

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.IMAGE_JPEG);  // 이미지 타입에 따라 MediaType 설정
        headers.setContentLength(imageBytes.length);

        return new ResponseEntity<>(imageBytes, headers, HttpStatus.OK);
    }

이 코드를 사용하면 바로 해당 위치의 파일 바이트를 복사해서 보여주는 기능을 할 수 있다.!!