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
반응형
'공부기록 > 스프링 프레임워크' 카테고리의 다른 글
Spring Boot Security session timeout not working (0) | 2022.12.28 |
---|---|
[스프링] 파일 용량별 전송 시간 (0) | 2021.06.12 |
이클립스 build path 없어짐..? (프로젝트 생성시) (0) | 2021.05.18 |
[스프링] 공통 java class 라이브러리화 하기 (0) | 2021.04.14 |
[스프링 프레임워크] 이메일 인증하여 회원가입하기(비동기) (0) | 2021.01.25 |