ckeditor 4 이미지 붙이기 오류 문의
본문
안녕하세요.
아래 기재된 upload.php로 활용하고 있습니다.
다만, 복사 붙이기 하면은 아래와 같이 그림은 옅게 되고 작성완료 시 완료가 안 되는데요.
어떤 부분을 수정하면 좋을까요? 도움 부탁드립니다.
<?php
function print_error($type, $msg) {
if(strtolower($type) == "json") {
$res = array();
$res['uploaded'] = 0;
$res['error']['message'] = $msg;
echo json_encode($res);
} else {
echo "<script> alert('{$msg}'); </script>";
}
exit;
}
include_once("../../../common.php");
include_once(G5_EDITOR_LIB);
// 업로드 경로 세팅
$ym = date('ym', G5_SERVER_TIME);
$data_dir = G5_DATA_PATH.'/editor/'.$ym;
$data_url = G5_DATA_URL.'/editor/'.$ym;
@mkdir($data_dir, G5_DIR_PERMISSION);
@chmod($data_dir, G5_DIR_PERMISSION);
// 업로드 DIALOG 에서 전송된 값
$funcNum = $_GET['CKEditorFuncNum'] ;
// 업로드 대상 파일
$upFile = $_FILES['upload'];
if(empty($upFile['tmp_name'])) {
$msg = e__("No files");
print_error($responseType, $msg);
}
$fileInfo = pathinfo($upFile['name']);
$filename = $fileInfo['filename'];
$extension = $fileInfo['extension'];
$extension = strtolower($extension);
if (!preg_match("/(jpe?g|gif|png)$/i", $extension)) {
$msg = e__("Only 'jpg, gif, png' file");
print_error($responseType, $msg);
}
// jpeg 확장자 jpg로 통일되도록
if($extension == 'jpeg') $extension = 'jpg';
// 윈도우에서 한글파일명으로 업로드 되지 않는 오류 해결
$file_name = sprintf('%u', ip2long($_SERVER['REMOTE_ADDR'])).'_'.get_microtime().".".$extension;
$save_dir = sprintf('%s/%s', $data_dir, $file_name);
if (move_uploaded_file($upFile["tmp_name"], $save_dir)) {
$w_pc = 835;
$w_mo = 320;
$ei = new EditorImage();
$ins = $ei->insert_data($upFile, $save_dir, $_GET['editor_form_name'], $_GET['editor_id'], $_GET['editor_uri'], $_GET['ei_token']);
// 썸네일 생성
$img_width = $is_mobile ? $w_mo : $w_pc;
$tmp_thumb = $ei->img_thumbnail($save_dir, $img_width);
$img_thumb = $tmp_thumb['src'];
$save_url = sprintf('%s/%s', $data_url, $img_thumb);
// 성공 결과 출력
if(strtolower($responseType) == "json") {
$res = array();
$res['fileName'] = $file_name;
$res['url'] = $save_url;
$res['uploaded'] = 1;
$res['inserted'] = $ins;
if($file_name != $img_thumb) { // 이름이 다르면 지정사이즈를 초과하여 썸네일화된것으로 간주, 출력 사이즈 지정
$res['width'] = "100%";
$res['height'] = "auto";
}
echo json_encode($res);
} else {
echo "<script>window.parent.CKEDITOR.tools.callFunction({$funcNum}, '{$save_url}', '');</script>";
}
exit;
}
$msg = e__("Upload failure.");
print_error($responseType, $msg);
?>
답변 1
정확한 질문 파악은 안되지만,
보통 복사/붙이기 하면 에디터에서 HTML로 파싱해서 가져오는 경우가 있습니다.
소스보기를 했을 경우 이미지 링크가 있다면 그것이 화면에 보여질 것입니다.
ckeditor 같은데.. 어떤 것을 사용했느냐에 따라 조금 다를 수도 있습니다. (구현에 따라..)
주소를 주면 더 테스트해 드리기 편할 것 같습니다.