CKEditor를 사용한 글쓰기 페이지를 만들었다.
기본 세팅을 마친 후 게시글에서 이미지를 불러올 때 로직이 헷갈려서 따로 정리해보았다.
const getDataFromCKEditor = (event, editor) => {
const data = editor.getData();
// 이미지가 있다면!
if (data && data.match("<img src=")) {
const whereImg_start = data.indexOf("<img src=");
// 이미지 url 지정
let whereImg_end = "";
let ext_name_find = "";
let result_Img_Url = "";
// 이미지 확장자 지정
const ext_name = ["jpeg", "png", "gif", "jpg"];
for (let i=0; i<ext_name.length; i++){
if (data.match(ext_name[i])){
// 확장자 저장
ext_name_find = ext_name[i];
// 확장자가 나오기 전까지
whereImg_end = data.indexOf(`${ext_name[i]}`);
}
}
if (ext_name_find === "jpeg"){
result_Img_Url = data.substring(whereImg_start + 10, whereImg_end + 4);
} else {
result_Img_Url = data.substring(whereImg_start + 10, whereImg_end + 3);
}
setValues({
...form,
fileUrl: result_Img_Url,
contents: data,
});
} else { // 이미지가 없으면 fileUrl을 빈 값으로 저장합니다
setValues({
...form,
fileUrl: "",
contents: data,
});
}
}
** 이미지가 없다면 url을 빈값으로 저장한다.