스프링부트

UrlResource 객체 사용하여 이미지 객체 반환하기

하이자바 2025. 3. 5. 18:52

UrlRespource는 파일을 객체로 만들 수 있고 그 객체를 반환하여

URL에 띄울 수 있도록 해준다.

 

사용하게 된 이유는 이미지 파일의 경로를 스프링 프로젝트 내부가 아닌 외부에 두었기에 바로 불러올 수가 없었음

 

먼저 WebMvcCOnfigurer를 통해 메소드 오버라이딩 후 파일을 저장하는 경로와 매핑을 시킨다.

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    String imagePath = "file:경로";
    registry.addResourceHandler("/images/**")
            .addResourceLocations(imagePath);
}

 

 

filePath는 저장 폴더의 경로를 상수로 생성

String decodedFileName = URLDecoder.decode(fileName, StandardCharsets.UTF_8);
Path filePath = Paths.get(IMAGE_DIR).resolve(decodedFileName).normalize();
UrlResource resource = new UrlResource(filePath.toUri());

 

마지막으로 다음과 같이 리턴을 하게 되면

return ResponseEntity.ok()
        .contentType(MediaType.parseMediaType("image/png"))
        .header(HttpHeaders.CONTENT_DISPOSITION, "inline; filename=\"" + fileName + "\"")
        .body((Resource) resource);

 

 

http://localhost:8080/경로/파일명.jpeg 와 같은 이미지가 웹 브라우저에 나타나는 것을 확인할 수 있다.