개발자
React - quill 사용해서 텍스트 에디터 만드는 중인데 이미지 업로드시 base 64로 너무 긴데 db에 넣으려면 어떻게 해야하는지 아시는 분 계신가요 ? 그리고 프론트 처리인가요 백엔드 처리인가요..?
답변 3
인기 답변
프론트와 백엔드 모두 작업이 필요할 수 있으며, 다음의 절차대로 움직입니다. (1) 이미지 업로드 (2) 업로드된 이미지의 URL을 에디터 본문의 img 태그에 삽입 (3) 작성완료된 본문(html) 전체를 DB에 저장 react quill을 별도의 설정 없이 사용하면 본문의 img 태그에 기본으로 base64 문자열이 삽입되어 아주 길어집니다. 따라서 우리가 원하는 일은 '툴바의 사진 버튼 눌러서 사진 삽입 시, base64 대신 url이 img 태그에 삽입되는 것'입니다. react quill에서는 custom toolbar를 지원하므로, 이를 통해 원하는 작업을 할 수 있습니다. custom toolbar 옵션을 이용하면 toolbar 속 사진 버튼의 click 이벤트에 대한 핸들러 함수를 직접 정의할 수 있습니다. 코드를 어떻게 작성할지 까지는 답변드리지 않겠지만, 대신 도움이 될 만한 링크들 함께 공유드릴게요. - https://www.npmjs.com/package/react-quill#custom-toolbar - https://quilljs.com/docs/modules/toolbar/#handlers - https://velog.io/@runprogrmm/Next.js-React-react-quill-%EC%97%90%EB%94%94%ED%84%B0%EB%A1%9C-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 03월 06일
Base64로 인코딩된 이미지는 문자열 형태로 매우 길어질 수 있습니다. 이런 큰 데이터를 DB에 저장하지 않는 것이 일반적으로 좋습니다. 그대신 이미지 파일을 서버의 파일 시스템에 저장하거나, 더 나아가 S3와 같은 클라우드 기반 스토리지 솔루션에 저장하는 것이 일반적인 방법입니다. React-Quill에서 제공하는 Image Handler를 사용하여 이 작업을 수행하겠다면 다음과 같은 과정을 거치게 됩니다: 1. React-Quill의 Image Handler에서 이미지를 base64 문자열로 가져옵니다. 2. 이 Base64 문자열이 아닌 원시 이미지 파일을 백엔드 서버에 업로드하기 위해 다시 Blob 객체나 FormData 객체로 변환합니다. 3. 변환된 이미지 데이터를 백엔드 서버에 업로드합니다 (이 작업은 프론트엔드에서 처리됩니다). 4. 백엔드 서버에서는 이 이미지 데이터를 받아 처리 후, 클라우드 스토리지 등에 이미지를 업로드하고 해당 URL을 반환합니다 (이 작업은 백엔드에서 처리됩니다). 5. 프론트엔드는 응답에서 반환된 URL을 이용해 에디터 내부에서 해당 위치에 이미지를 표시합니다. 요약하자면, 본질적으로 이는 프론트엔드와 백엔드 모두에서 처리되는 작업입니다. 프론트엔드에서는 사용자가 업로드한 이미지를 받고 백엔드 서버에 전송하는 역할을, 백엔드 서버에서는 해당 이미지를 저장하고 저장 위치의 URL을 반환하는 역할을 합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!