mongodb에 간단한 base64 인코딩 이미지를 저장및 불러오는 방법을 기록해둔다.


    html2canvas를 이용하여 html일부를 스크린샷형태로 저장하면 base64 인코딩된 문자열을 받을 수 있다.


    이걸 그냥 db에 저장한다. (data:image/jpeg:base64,/~~~로 시작하는 그대로)


    문제는 불러올때인데, 예를들어 /screenshot/asdf 에 접속하면 다운받을 수 있게 하고자 하는 코드 예제이다.

    주소가 파일명이 아니지만 파일로 인식하게하기위한 작업이다.


    app.get("/screenshot/:seats_id",(req,res)=>{ 

      //db로 불러온걸 base64data에 넣어주는 작업이 여기 들어갑니다.

          let img = new Buffer(base64data.split(",")[1], 'base64');

          res.writeHead(200, {'Content-Type': 'image/jpeg','Content-Length': img.length,'Cache-Control': 'no-cache'});

          res.end(img);

        });

    });


    필자는 

    내가 AWS EC2를 도입하면서 겪은 고충들

    이 글에서 언급했다시피 nginx를 웹서버로쓰고 리버스프록시로 node.js를 연결해 사용중인데


    static파일만 nginx에서 직접 호스팅하다보니 url이 파일이름이면 nginx에서 먼저 찾는 수고를 하기때문에 위와같은 작업을 하게되었다.


    결국은 그냥 파일로 저장해 호스팅하는 방식으로 선회했지만 나중에라도 db에 이미지를 저장해 쓸때를 대비해 적어둔다.

    저작자 표시 비영리 동일 조건 변경 허락
    신고
    Posted by 뭐하라

    문제가 있나요?(?)

    내용상 오류가 있음 업데이트 필요 화면이 깨짐 기타 수정이 필요함

티스토리 툴바