개발 Q&A

제목 [해결됨] CKEditor 이미지 업로드시 Callback 오류 문의
카테고리 PHP
글쓴이 네이처그린 작성시각 2017/07/30 21:51:59
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 498   RSS

안녕하세요. 

CKEditor 이미지 업로드시 Callback 오류가 나와서 질문 드립니다.

매번 질문만 드리긴 하지만, CI를 사용하면서 하루죙일 안풀린 문제는 요넘 밖에 없네요 ㅠ.ㅠ

 

버전정보 : CI 3.1.4, PHP 5.5, CKEditor 4.1 (revision 80c139aa)

설치 : https://opentutorials.org/module/327/3868 를 참조함

문제점 : 이미지 업로드시 Callback 오류

현상1 : dir 내의 이미지 파일 업로드는 잘됨

현상2 : dialog에서 이미지 로딩이 안됨

 

뷰 파일

					<div class="col-md-12 br">
						<label class="control-label">본문</label>
						<textarea id="ckeditor" name="description"></textarea>
					</div>
				</div>
			</div>
		</div>
	</div>
</div>

<?php echo form_close();?>

<script src="<?=base_url();?>assets/dist/ckeditor/ckeditor.js"></script>
<script>
    CKEDITOR.replace( 'ckeditor', {
        filebrowserUploadUrl: '<?=base_url();?>boss/product/upload_receive_from_ck'
    });
</script>

 

컨트롤러 파일

    public function upload_receive_from_ck()
    {
        $config['upload_path'] = 'assets/upload/content/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '0';
        $config['file_name'] = date("ymd") . '_' . filehash(date("Y-m-d H:i:s"));
        $this->load->library('upload', $config);

        if(!$this->upload->do_upload("upload")) {
            echo "<script>alert('업로드에 실패 했습니다. ".$this->upload->display_errors('','')."')</script>";
        } else {
            $CKEditorFuncNum = $this->input->get('CKEditorFuncNum');

            $data = $this->upload->data();
            $filename = $data['file_name'];

            $url = './assets/upload/content/'.$filename;

            echo "<script type='text/javascript'>window.parent.CKEDITOR.tools.callFunction('".$CKEditorFuncNum."', '".$url."', '전송에 성공 했습니다')</script>";
        }
    }

 

 

답변 주신분들 미리 감사드립니다. 휴가 잘 보내세요 ^^/

첨부파일 001.png (8.3 KB)
004.png (16.8 KB)
 다음글 매일 새벽 DB 백업에 대한 질문입니다. (2)
 이전글 ci에서 tdd방식으로 개발하기. (2)

댓글

변종원(웅파) / 2017/07/31 11:25:24 / 추천 0
$this->input->get('CKEditorFuncNum') 이 값 출력해보세요. 값이 있나..
네이처그린 / 2017/07/31 13:13:54 / 추천 0

넵..확인 해봤습니다. ^^

$this->input->get('CKEditorFuncNum'), $_GET['CKEditorFuncNum'] 둘다 써보니 "1"로 나오더라구요 크롬 개발자에서도 TOK 나왔었습니다. ㅠ.ㅠ..

변종원(웅파) / 2017/07/31 13:45:00 / 추천 0

1이 나오면 안되겠죠. 에디터함수명이 나와야 하는건데요. 

펑션(1) 호출이 안되는건가보네요?

네이처그린 / 2017/07/31 16:36:28 / 추천 0

넵 config에서 XSS도 off(False) 해봤습니다만, 안되더라구요 (분명 제가 못하는거 같긴 한데 -_-..)

네이처그린 / 2017/08/01 08:12:29 / 추천 0

[자문자답]

해결했습니다 ^^, 안정적으로 잘되는것 같습니다.

컨트롤러에서 

ob_get_level();
ob_end_flush();

이렇게 추가하니깐 되더군요..