본문으로 바로가기

CKEditor 버전 문제 해결

category 웹/Spring 2019. 6. 25. 00:08

개발 도중 CKEditor 4를 쓰고있었는데

이미지 업로드 부분에서 자꾸

ckeditor 잘못된 서버 응답

이라는 문구가 뜨며 업로드 컨트롤러 상에서 에러가 발생했습니다.

 

이는 버전 문제로 버전이 올라가면서 생긴 문제입니다.

즉 문제라기 보다는 버전이 업데이트 되었으니 해당 버전에 맞게 사용해야한다는 거죠.

즉 기존에서는 내보내줄 때 script 형태로 내보내주었습니다. 

예를들어서

printWriter.println("<script type='text/javascript'>"
     + "window.parent.CKEDITOR.tools.callFunction("
     + callback+",'"+ fileUrl+"','이미지를 업로드하였습니다.')"
     +"</script>");

위와 같은 형태였습니다. 하지만 버전이 업데이트 되면서

Json 형태로 리턴을 해야한다고 문서에 적혀있습니다.

따라서 Json 형태로 바꾸어주면 

{\"filename\" : \""+fileName+"\", \"uploaded\" : 1, \"url\":\""+fileUrl+"\"}

위와 같은 형태로 filename: 파일명 uploaded:1(성공시) url:경로

이런 식으로 넣어주어야 합니다.

따라서 

printWriter.println("{\"filename\" : \""+fileName+"\", \"uploaded\" : 1, \"url\":\""+fileUrl+"\"}");

위 처럼 적어주셔야 합니다. fileName과 fileUrl은 각자 변수지정해준 것을 사용해주시면 됩니다.

만약 Json 형태가 익숙치 않으시다면 

JsonObject json = new JsonObject();
json.addProperty("uploaded", 1);
json.addProperty("fileName", fileName);
json.addProperty("url", fileUrl);
printWriter.println(json);

형태로 하셔도 무방합니다.

좋은 해결되셨길 바랍니다.