본문 바로가기
공부기록/스프링 프레임워크

[스프링] 화면에 이미지 출력하기(url로 접근)

by 책읽는 개발자 ami 2021. 4. 19.
728x90
반응형

localhost:8080/pictures?id=aaaa 와 같이 파일이름을 파라미터로 넘겨 로컬에 있는 이미지 파일을 바로 화면에 뿌리고자 한다.

@Controller
public class ImageController {

	 @RequestMapping(value = "/pictures", produces = MediaType.IMAGE_JPEG_VALUE)
	 public @ResponseBody byte[] getImageWithMediaType(HttpServletRequest request) throws IOException {
		 
		String check_id = request.getParameter("id");
		Map<String, Object> param = new HashMap<String, Object>();
			 
		String res = "C:\\file\\" + id + ".JPG";
		InputStream in = new FileInputStream(res);
			 
		return IOUtils.toByteArray(in);
	 }	
}

 

화면에 BYTE를 출력함으로써 이미지를 보여줄 수 있다.

위 코드에 대한 설명은 아래와 같습니다~

1. 파일을 InputStream으로 읽어온다.

2. IOUtils 패키지에 있는 함수 toByteArray()를 이용하여 InputStream을 ByteArray로 바꿔준다.

3. 함수에 @ResponseBody를 붙인다. (서버에서 클라이언트로 응답 데이터를 전송하기 위해)

4. produces를 jpg 타입으로 지정한다. (MediaType.IMAGE_JPEG_VALUE)

 

 

728x90
반응형