[마이플랫폼] Base64 문자열을 이미지 컴포넌트에 표시하기
마이플랫폼에서 Base64 이미지 문자열을 이미지 컴포넌트에 표시하고자 할 때
java 단에서 먼저 해당 컬럼을 DB에서 조회한 다음 일반적인 DRRecordSet으로 반환하면
String 데이터 컬럼으로 변환되어 이미지 컴포넌트에 표시하지 못한다.
그래서 DRRecordSet을 새로 생성하여 해당 컬럼을 BLOB로 만들어서 반환하면
이미지 컴포넌트에서 이미지를 제대로 표시할 수 있다.
DSRecordSet rs = DB에서 조회한 목록
DSRecordSet rs2 = new DSRecordSet();
rs2.addColumn("base64Image", ColumnInfo.CY_COLINFO_BLOB, -1);
for (int i = 0; i < rs.getRowCount(); i++) {
int row = rs2.appendRow();
String imageData = rs.getColumn(row, "base64Image").toString();
rs2.setColumn(row, "base64Image", Base64.decode(imageData.getBytes()));
}
생성한 rs2를 반환한다.
이후 마이플랫폼에서 원하는 이미지 컴포넌트에 표시한다.
imgPhoto.ImageID = ds.GetColumn(nRow, 'base64Image');
단, 여기서 주의할 점은 이미지 컴포넌트 imgPhoto의 ImageID 값은 항상 null 이다.
그래서 if (imgPhoto.ImageID != '')와 같은 구문은 항상 거짓이 된다.
그리고 이미지 컴포넌트의 이미지를 지우거나 초기화할 경우 빈문자열 대신 null을 이용한다. imgPhoto.ImageID = null
'기타' 카테고리의 다른 글
택배 조회 URL (0) | 2018.09.18 |
---|---|
CSS 이미지 위에 텍스트 표시 (0) | 2018.08.20 |
Web API CORS 관련 문제 해결(개발 시) (0) | 2017.12.22 |
[UbiReport] 그룹별 제목과 다단 보고서 (0) | 2016.05.11 |
Alfresco 웹스크립트를 이용한 사이트 생성 (0) | 2015.07.21 |