Node.js

Node.JS base64로 인코딩한 이미지 incorrect 오류

리콜 2023. 11. 7. 16:04

db에서 받아온 blob데이터를 base64로 인코딩 하였는데 이미지가 보이지 않았다.

다른 사이트의 base64 이미지 뷰어에 base64를 넣었는데

 

사이트는:

https://ko.rakko.tools/tools/71/

를 사용하였다.

 

Base64- 이미지 디코더 / 컨버터 | RAKKOTOOLS🔧

Base64 문자열을 이미지로 디코딩

ko.rakko.tools

위와 같이 

"데이터 수집에 실패했습니다. 입력 내용에 오류가 없는지 확인하십시오."

라고 떴다.

 

여러 스택오버플로우를 돌아다니다가 겨우

해결하였다.

 

NodeJS 버전은 18버전을 사용하였다.

 

기존에는 

rows = rows.map(row => {
                    if (row.IMG_DATA) {
                      // Buffer에 데이터를 바이너리로 로드하고 base64로 인코딩

                      row.IMG_DATA = Buffer.from(row.IMG_DATA).toString('base64');
                    }

 

다음과 같이 db에서 받아온 이미지 데이터를 base64로 인코딩 하였는데

이미지가 안나왔다.

 

그래서 해결한 코드는

rows = rows.map(row => {
                    if (row.IMG_DATA) {
                      // Buffer에 데이터를 바이너리로 로드하고 base64로 인코딩

                      row.IMG_DATA = Buffer.from(row.IMG_DATA, 'base64').toString();
                    }

이다.

 

 

수정 전 base64 결과


toString('base64')를 하면 이렇게 이쁘게 네모나게 나오지만

이미지가 보이지 않는다.

 

 

수정 후 base64 결과


 

위와같이 출력되는데 이미지가 정상적으로 출력된다.

 

 

 

다만 보이는 바와 같이 밑줄이 되어있는데 더블클릭으로 복사 하기가 불편해진다.

 

 

반응형