프로젝트를 진행하면서 사진파일과 영상파일을 불러와서 화면에 보여줘야하는 기능을 구현해야 했는데
클라이언트에서 api를 호출하면 이미지를 볼 수 있도록 구현하였다.
- Controller
@GetMapping("/thumbnail/{contentId}")
public ResponseEntity<Resource> getThumbnailResource(@PathVariable long contentId) {
Resource resource = contentService.getThumbnailResource(contentId);
MediaType mediaType = MediaTypeFactory.getMediaType(resource).orElse(MediaType.IMAGE_PNG);
return ResponseEntity.ok()
.contentType(mediaType)
.body(resource);
}
- Service
public Resource getThumbnailResource(long contentId) {
FileSystemResource resource = null;
Content content =
contentRepository.findById(contentId)
.orElseThrow(() -> new NotFoundException(Content.class, contentId));
String path = content.getThumbnailPath();
String absolutePath = uploadPath + File.separatorChar + path;
resource = new FileSystemResource(absolutePath);
return resource;
}
클라이언트에서 컨텐츠 id를 전달하면 저장해둔 파일경로로 해당 파일을 불러온다.
'개발자공부 (2021.11~현재) > Java' 카테고리의 다른 글
Jcodec과 thumbnailator를 이용한 썸네일 뽑기 (0) | 2022.11.01 |
---|---|
스트림을 이용한 성적관리 프로그램 만들기 (0) | 2021.12.10 |
스트림(stream)을 이용한 클래스 다루기 (0) | 2021.12.10 |
ArrayList를 이용한 학생 관리 프로그램 (0) | 2021.12.10 |
Java로 만드는 학생 성적 관리 프로그램 (0) | 2021.11.12 |