개발자공부 (2021.11~현재)/Java

Resource 를 사용한 사진파일 불러오기

purplecloud 2022. 10. 28. 17:18

프로젝트를 진행하면서 사진파일과 영상파일을 불러와서 화면에 보여줘야하는 기능을 구현해야 했는데

클라이언트에서 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를 전달하면 저장해둔 파일경로로 해당 파일을 불러온다.