728x90
이미지 파일(BLOB 타입)을 데이터 베이스에서 가져와 실제 이미지화하여 이를 파일로 다운로드 하기 위해선 ImageIO 클래스의 read 함수를 통해 이미지를 받아와 이를 write 함으로써 가능하다. 참고로 아래 코드 중 'png'가 들어가는 부분에는 이미지의 확장자를 넣으면 된다.
String image = itemVO.getImageData();
byte[] imageBlob = Base64.getDecoder().decode(imageDataStr.split(",")[1]);
String fileName = "C:\Users\Admin\Downloads\new_image.png";
BufferedImage img = ImageIO.read(imageBlob);
ImageIO.write(img, png, new File(fileName));
유의할 점
이전에 POI를 통해 이미지를 삽입할 때는 이 과정을 거치지 않았는데, 이 데이터를 바이트 배열 스트림으로 받아 파일 스트림으로 출력하려하니 'data:image/png;base64,' 부분을 제거해주어야 정상적으로 출력되었다.
byte[] imageBlob = Base64.getDecoder().decode(imageDataStr.split(",")[1]);
반응형
'Backend > Spring' 카테고리의 다른 글
Spring) 실제 프로젝트가 실행되는 실제 경로 구하기 (0) | 2022.01.16 |
---|---|
Spring) MyBatis 동적 쿼리(매개변수 작성 시 $와 #의 차이) (0) | 2022.01.16 |
Spring) 바이너리 파일을 DB에 저장 후 요청에 의해 바로 다운로드하기 (0) | 2021.12.06 |
Spring) Poi와 Jxls를 사용해 Template을 이용한 워드 다운로드 (0) | 2021.12.06 |
Spring) Poi와 Jxls를 사용해 Template을 이용한 파워포인트 다운로드 -2. 테이블 작성 (0) | 2021.11.28 |