그누보드5 ckeditor 이미지 업로드 질문

그누보드5 ckeditor 이미지 업로드 질문

QA

그누보드5 ckeditor 이미지 업로드 질문

본문

ckeditor 이미지 클릭 시 '업로드' 부분은 만들었습니다.

하지만 서버로 전송을 해야 하던데... 이 부분을 어떻게 해야하는지..

아래 save dir/url 을 서버 주소, 폴더로 해야하나요?

막막하네요 ㅠㅠ

1. upload.php

<?php
require_once("config.php");
 
// 업로드 DIALOG 에서 전송된 값
$funcNum = $_GET['CKEditorFuncNum'];
$CKEditor = $_GET['CKEditor'];
$langCode = $_GET['langCode'];
 
$tempfile = $_FILES['upload']['tmp_name'];
$filename = $_FILES['upload']['name'];
 
$type = substr($filename, strrpos($filename, ".")+1);
$found = false;
switch ($type) {
    case "jpg":
    case "jpeg":
    case "gif":
    case "png":
        $found = true;
}
 
if ($found != true) {
    exit;
}
 
// 저장 파일 이름: 년월일시분초_렌덤문자
// 20140327125959_abcdefghi.jpg
 
$filename = cke_replace_filename($filename);
$savefile = SAVE_DIR . '/' . $filename;
$save_url = SAVE_URL . '/' . $filename;
 
move_uploaded_file($tempfile, $savefile);
$imgsize = getimagesize($savefile);
$filesize = filesize($savefile);
 
if (!$imgsize) {
    $filesize = 0;
    $random_name = '-ERR';
    unlink($savefile);
};
 
try {
    if(defined('G5_FILE_PERMISSION')) chmod($savefile, G5_FILE_PERMISSION);
} catch (Exception $e) {
 
}
 
echo "<script>window.parent.CKEDITOR.tools.callFunction($funcNum, '$save_url', '업로드완료');</script>";
?>
 

2. config.php

<?php
include_once("_common.php");
 
if(strpos($config['cf_editor'], 'ckeditor') === false ){
    exit;
}
 
// ---------------------------------------------------------------------------
 
# 이미지가 저장될 디렉토리의 전체 경로를 설정합니다.
# 끝에 슬래쉬(/)는 붙이지 않습니다.
# 주의: 이 경로의 접근 권한은 쓰기, 읽기가 가능하도록 설정해 주십시오.
 
# data/editor 디렉토리가 없는 경우가 있을수 있으므로 디렉토리를 생성하는 코드를 추가함. kagla 140305
 
@mkdir(G5_DATA_PATH.'/'.G5_EDITOR_DIR, G5_DIR_PERMISSION);
@chmod(G5_DATA_PATH.'/'.G5_EDITOR_DIR, G5_DIR_PERMISSION);
 
$ym = date('ym', G5_SERVER_TIME);
 
$data_dir = G5_DATA_PATH.'/'.G5_EDITOR_DIR.'/'.$ym;
$data_url = G5_DATA_URL.'/'.G5_EDITOR_DIR.'/'.$ym;
 
define("SAVE_DIR", $data_dir);
 
@mkdir(SAVE_DIR, G5_DIR_PERMISSION);
@chmod(SAVE_DIR, G5_DIR_PERMISSION);
 
# 위에서 설정한 'SAVE_DIR'의 URL을 설정합니다.
# 끝에 슬래쉬(/)는 붙이지 않습니다.
 
define("SAVE_URL", $data_url);
 
function cke_get_user_id ()
{
    @session_start();
    return session_id();
}
 
function cke_get_file_passname ()
{
    $tmp_name = cke_get_user_id().$_SERVER['REMOTE_ADDR'];
    $tmp_name = md5(sha1($tmp_name));
    return $tmp_name;
}
 
function cke_generateRandomString ($length = 4)
{
    $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;
}
 
function cke_replace_filename ($filename)
{
    $ext = pathinfo($filename, PATHINFO_EXTENSION);
    $random_str = cke_generateRandomString(4);
    $passname = cke_get_file_passname();
    $file_arr = date("YmdHis", time());
    return $file_arr.'_'.$passname.'_'.$random_str.'.'.$ext;
}
?>

 

이 질문에 댓글 쓰기 :

답변 1

upload.php의 move_uploaded_file($tempfile, $savefile);

부분이 서버로 파일을 올리는 부분입니다. 

 

config.php에서 정의된 

$data_dir = G5_DATA_PATH.'/'.G5_EDITOR_DIR.'/'.$ym;

$data_url = G5_DATA_URL.'/'.G5_EDITOR_DIR.'/'.$ym;

 

의 폴더가 쓰기권한이 있나요?

답변을 작성하시기 전에 로그인 해주세요.
전체 123,529
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT