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 와 같은 이미지가 웹 브라우저에 나타나는 것을 확인할 수 있다.
'스프링부트' 카테고리의 다른 글
| 일정 관리 페이지 만들기 (0) | 2025.03.24 |
|---|---|
| 스프링부트 + JPA에 대하여 (환경 세팅) (0) | 2025.03.17 |
| Vue + 스프링부트 폼 데이터로 파일 받기 (0) | 2025.03.04 |
| 스프링부트 White label error page 처리와 Global Exception (0) | 2024.09.27 |
| 웹 개발 네트워크 지식 (5) | 2024.09.06 |