CI 묻고 답하기

제목 ck에디터 이미지 업로드가 안돼요 ㅠ
카테고리 기타 솔루션
글쓴이 으샤샤 작성시각 2018/04/13 18:48:29
댓글 : 13 추천 : 0 스크랩 : 0 조회수 : 26694   RSS

카페24 호스팅사용하고 CI로 웹 개발중인데요

CK에디터 넣고 있는데 이미지 등록이 안되네요...ㅜ

업로드 경로 가보면 이미지는 등록되어 있는데 

'잘못된 서버 응답' alert창이 계속 뜨네요.

무슨 문제일 까요??

 

환경:

php: 7.0

CI: 3.0

CK: 4


첨부파일 asdf.jpg (34.0 KB)
 다음글 반응형페이지에서 자동로그인 관련 문의 (2)
 이전글 안녕하세요 codeigniter에서 미리보기 질문드립니... (1)

댓글

빛그림 / 2018/04/13 19:16:20 / 추천 0
이미지가 잘 업로드 되었음에도 그런다면 window.parent.ckeditor.tools.callfunction이 잘못된게 아닐까요
으샤샤 / 2018/04/13 20:04:53 / 추천 0
콘트롤에서 이미지 업로드 하기전에 test용 alert를 띄웠는데 안뜨는거 봐서는 어떤 설정값이나...그런게 문제가 아닐까 해요...
변종원(웅파) / 2018/04/16 10:34:42 / 추천 0

업로드 경로를 ck에디터에 정상적으로 전달하는지, 전달됐다면 저 메세지가 나오는 라인이 어딘지  순차적으로 체크해보세요.

으샤샤 / 2018/04/16 11:23:38 / 추천 0
저건 제가 만든 alert가 아니라 ckeditor에서 보내는거예요..ㅠ
변종원(웅파) / 2018/04/16 13:06:26 / 추천 0

으샤샤/ 그럼 파일업로드 이후부터 ck에디터 저 메세지 나오기전까지를 보시면 되겠네요.

디버깅은 변수를 제거하는 작업입니다. 이러이러한 상황이므로 서버 문제는 아니다. 그 다음 변수로 다시 판단을 해서

하나씩 없애다보면 디버깅이 완료됩니다. 서버의 문제인지, 클라이언트의 문제인지, 판단하고 가능선상에서 제외시키면서

답을 찾아가시면 됩니다.

으샤샤 / 2018/04/16 13:15:28 / 추천 0

변종원(웅파)/ 음...말씀하신 방법으로 테스트를 해보았습니다. 콘트롤러에서 해당 함수의 내용을 모두 주석처리 해도 저런 메세지가 뜨더라구요. 그래서 이건 소스문제가 아닌 설정값이나 외부적 문제라고 판단한거구요. 한 3일정도 검색해보고 적용해보고 도저히 안되네요...유사한 사례가 거의 안보이기도 하기요. ck쓰고싶은데 다른에디터를 써야하나 고민중에 있습니다ㅋ

버섯지렁이 / 2018/04/19 15:12:07 / 추천 0

저도 같은 문제 있었는데요, 저의 경우에는 ckeditor 4.0.0에서 4.9.0으로 업데이트 하니 발생했었습니다. window.parent.ckeditor.tools.callfunction을 썼었는데 해당 코드 있는 곳 지우고 아래 형식처럼 넣으니까 되더라고요.

{"filename" : "[파일이름]", "uploaded" : 1, "url":"[파일path]"}

참고로 .NET 환경에서 진행했습니다.

 

으샤샤 / 2018/04/19 15:40:30 / 추천 0

버섯지렁이님 댓글정말 감사합니다~!

 

echo "<script type='text/javascript'>window.parent.CKEDITOR.tools.callFunction({"filename" : "[파일이름]", "uploaded" : 1, "url":"[파일path]"})</script>";

이런식으로 수정했다는 말씀이신지요?

버섯지렁이 / 2018/04/19 16:18:19 / 추천 0

아뇨아뇨.

아예 script 부분을 지우고 {"filename": ~~ } 이 부분만 쓴 거에요.

저도 해결하려고 엄청 검색했는데 결국 못 찾고 상사분이 알려주신 대로 작성했더니 되더라고요..ㅋㅋ

php 환경에서도 될지는 모르겠네요. 해결되시길 ㅠㅠㅠ

으샤샤 / 2018/04/19 16:28:53 / 추천 0

아이고 방금 해봤는데 되네요... 정말 정말 감사 드려요 몇일을 고생했는데......이렇게 허무하게...역시 개발은 쫄깃하네요...ㅎㅎ

다시한번 정말 감사드립니다(꾸벅)

 

버섯지렁이 / 2018/04/19 16:35:45 / 추천 0
앜ㅋㅋㅋ 다행이네요!!!! 저도 계속 삽질하던 중이었어서 후련하네요 ㅋㅋ
으샤샤 / 2018/04/19 17:31:22 / 추천 0
감동스러운 저녁이네요 ㅎㅎㅎ 진짜 별것도 아닌데 안되는 느낌이라 정말 기분 안좋았거든요 ㅋㅋㅋ 자괴감들고...ㅋㅋ 정말 감사합니다!
nhy7840 / 2019/09/05 16:13:15 / 추천 0
@Controller
public class ImageUploadController {
   
 
 
 
   @ResponseBody
   @RequestMapping(value="imageUpload", method=RequestMethod.POST)
   public void imageUpload(HttpServletRequest request, 
         HttpServletResponse response, 
         @RequestParam MultipartFile upload)
            throws Exception {
   
      //http header 설정
      response.setCharacterEncoding("utf-8");
      response.setContentType("text/html;charset=utf-8");
      //http body
      //업로드한 파일 이름
      String fileName=upload.getOriginalFilename();
      //바이트 배열로 변환
      byte[] bytes=upload.getBytes();
      //이미지를 업로드할 디렉토리(배포 경로로 설정)
      String uploadPath = request.getSession().getServletContext().getRealPath("/resources/img/upload");
      System.out.println("uploadPath  "+ uploadPath);
      OutputStream out=new FileOutputStream(new File(uploadPath+fileName));
      //서버에 저장됨
      out.write(bytes);
      String callback= request.getParameter("CKEditorFuncNum");
      System.out.println("callback : "  + callback);
      PrintWriter printWriter = response.getWriter();
      String fileUrl = request.getContextPath()+"/resources/img/upload/"+fileName;
//      fileUrl = fileUrl.replace('\\', '/');
//      fileUrl = "/project/resources/img/제목 없음.png";
      
      System.out.println("fileUrl: "+fileUrl);
      System.out.println(out);
//      printWriter.println("<script>window.parent.CKEDITOR.tools.callFunction("+callback+",'"+fileUrl+"','이미지가 업로드 되었습니다.')"+"</script>");
      printWriter.println("<script>window.parent.CKEDITOR.tools.callFunction("+callback+",'"+fileUrl+"','이미지가 업로드 되었습니다.')"+"</script>");
      System.out.println("<script>window.parent.CKEDITOR.tools.callFunction("+callback+",'"+fileUrl+"','이미지가 업로드 되었습니다.')"+"</script>");
      //스트림 닫기
      printWriter.flush();
   }
}
 
제 코드는 이건데 어떻게 바꿔야하는지 아시는 분 계신가요?