테스트 사이트 - 개발 중인 베타 버전입니다

카페24의 무료 CDN과 그누보드5의 ckeditor4을 연동하는방법

안녕하세요~
도치즈입니다.

맨날 냑에서 눈팅만하다가 팁같지도 않은 팁을 올려봅니다 ㅎㅎ



카페24 홍보는 아니지만 카페24를 쓰면 아래와 같이 무료로 스트리밍 용량과 cdn용량을 주는데
솔직히 쓰기힘들어서 안쓰시거나 못쓰시는분들이 많아서요;; ㅎㅎ (물론 저도;;)

카페24의 호스팅 가격표
카페24에서 cdn을 제공한것을 사용중인것을 표시하는 이미지

그래서 인터넷 검색을해서 이 cdn을 사용하는 방법을 알아냈습니다 ㅎㅎ
첨부파일도 cdn으로 올리는작업을 하긴해야하지만 일단 그누보드5에 있는 ckeditor4와 연동하는방법을 올려봅니다 ㅎ




먼저 ["그누보드5 설치경로 > plugin > editor > ckeditor4 > upload.php"]파일을 열어주세요 ㅎ

그럼 아래와같은 코드가 적혀있을텐데요~

[code]
include_once("../../../common.php");

$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'] ;
$CKEditor = $_GET['CKEditor'] ;
$langCode = $_GET['langCode'] ;

if(isset($_FILES['upload']['tmp_name'])) {
$file = $_FILES['upload']['name'];
$pos = strrpos($file, '.');
$filename = substr($file, 0, $pos);
$extension = substr($file, $pos, strlen($file) - $pos);

if (!preg_match("/\.(jpe?g|gif|png)$/i", $extension)) {
echo '이미지 파일만 가능합니다.';
return false;
}

// 윈도우에서 한글파일명으로 업로드 되지 않는 오류 해결
$file_name = sprintf('%u', ip2long($_SERVER['REMOTE_ADDR'])).'_'.get_microtime().$extension;
$save_dir = sprintf('%s/%s', $data_dir, $file_name);
$save_url = sprintf('%s/%s', $data_url, $file_name);

if (move_uploaded_file($_FILES["upload"]["tmp_name"],$save_dir))
echo "";
}
?>
[/code]

일단 나중에 CDN을 사용하지 않으실때를 대비해서 아래와같이 원래 업로드하던부분은 주석처리해주세요 ㅎ


[CODE]
//if (move_uploaded_file($_FILES["upload"]["tmp_name"],$save_dir))

//echo "";

[/CODE]



그 다음 주석처리하신 위에부분에 아래부분을 추가해주세요 ㅎ


[CODE]
$server_host = "[-----아래 1번 참고 참조해주세요 ㅎ ------]"; //-->원격서버의 ip주소
$server_port = "21"; //-->원격서버의 port

$server_id= "[-----FTP 유저이름 ------]"; //-->원격서버의 서버id
$server_pw = "[-----FTP 패스워드 ------]"; //-->원격서버의 서버password

//원격서버에 연결한다.
if(!($fc = ftp_connect($server_host, $server_port)))
die("$server_host : $server_post - connect failed");

//원격서버에 로그인한다.
if(!ftp_login($fc, $server_id, $server_pw))
die("$server_id - login failed");

//업로드할 폴더로 이동한다.
$server_dir = "/www/data/editor/".$ym."/"; // 그누보드5의 에디터 기본경로입니다만 수정하셔도됩니다.
ftp_chdir($fc, $server_dir);


if(ftp_put($fc, $server_dir.$file_name, $_FILES["upload"]["tmp_name"], FTP_BINARY)) {
echo "";
} else { // 폴더가 생성되지않았을때 생성하는부분
$makedirectory=ftp_mkdir($fc,$server_dir);

ftp_put($fc, $server_dir.$file_name, $_FILES["upload"]["tmp_name"], FTP_BINARY);

echo "";
}

ftp_quit($fc);
[/CODE]




참조 1
원격서버 호스트는 ["카페24 관리자페이지 > 서비스 접속관리 > 서비스정보"]에서 확인가능합니다 ㅎ
서비스정보가 어디있는지와 호스트정보가 어디있는지를 설명하는이미지




참조 2
[----자신의 cafe24 아이디 -----] 부분은 ["카페24 관리자페이지 > 서비스 접속관리 > 서비스정보"]에서 cdn이용안내의 주소를 참조하시면됩니다^^






<완성>
[code]
include_once("../../../common.php");

$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'] ;
$CKEditor = $_GET['CKEditor'] ;
$langCode = $_GET['langCode'] ;

if(isset($_FILES['upload']['tmp_name'])) {
$file = $_FILES['upload']['name'];
$pos = strrpos($file, '.');
$filename = substr($file, 0, $pos);
$extension = substr($file, $pos, strlen($file) - $pos);

if (!preg_match("/\.(jpe?g|gif|png)$/i", $extension)) {
echo '이미지 파일만 가능합니다.';
return false;
}


// 윈도우에서 한글파일명으로 업로드 되지 않는 오류 해결
$file_name = sprintf('%u', ip2long($_SERVER['REMOTE_ADDR'])).'_'.get_microtime().$extension;
$save_dir = sprintf('%s/%s', $data_dir, $file_name);
$save_url = sprintf('%s/%s', $data_url, $file_name);


$server_host = "[-----아래 1번 참고 참조해주세요 ㅎ ------]"; //-->원격서버의 ip주소
$server_port = "21"; //-->원격서버의 port

$server_id= "[-----FTP 유저이름 ------]"; //-->원격서버의 서버id
$server_pw = "[-----FTP 패스워드 ------]"; //-->원격서버의 서버password

//원격서버에 연결한다.
if(!($fc = ftp_connect($server_host, $server_port)))
die("$server_host : $server_post - connect failed");

//원격서버에 로그인한다.
if(!ftp_login($fc, $server_id, $server_pw))
die("$server_id - login failed");

//업로드할 폴더로 이동한다.
$server_dir = "/www/data/editor/".$ym."/"; // 그누보드5의 에디터 기본경로입니다만 수정하셔도됩니다.
ftp_chdir($fc, $server_dir);


if(ftp_put($fc, $server_dir.$file_name, $_FILES["upload"]["tmp_name"], FTP_BINARY)) {
echo "";
} else { // 폴더가 생성되지않았을때 생성하는부분
$makedirectory=ftp_mkdir($fc,$server_dir);

ftp_put($fc, $server_dir.$file_name, $_FILES["upload"]["tmp_name"], FTP_BINARY);

echo "";
}

ftp_quit($fc);


//if (move_uploaded_file($_FILES["upload"]["tmp_name"],$save_dir))

//echo "";
}
?>
[/code]


이상 쓸모있을지 없을지 모르는 팁이었습니다 ㅎ

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 21개

좋은정보^^
대박팁이네요!
이런건 추천을 해야되 두번해야되 세번해야되.. 고맙습니다.
대박팁이네요. 헌데 이걸 다른호스팅에서 이용하시려면 ftp함수 지원 여부를 반드시 확인하셔야 할겁니다. 그렇지 않으면 낭패를 볼수가 있어요.
일단 cafe24 호스팅에서는 지원을 하더라구요 ㅎ
감사합니다. cafe24에 있는 CDN, 스트리밍 서비스 그냥 웹트래픽 용량으로 넣어주지 ... 생각을 많이 했었는데.
이렇게 활용하는 방법도 있었군요.
굿입니다. 감사합니다.
감사합니다^^
좋은 팁 감사합니다.
우아 그누4에도 적용하고 싶은데 ...ㅠㅠ
음.. 조만간 그누4로 변환해보겠습니다 ㅎㅎ
아이쿠 그리 말씀해주시니 조급해지네요 ㅋㅋ
저렇게 수정후 그냥 상품등록같은거하면 자동으로 CDN자원이 소모돼는건가요?
똑같이해도 왜 안될가요... 부탁드림니다 ㅠ.ㅠ
작은양심님!!
저도 이거 적용하다가 발견한건데요
혹시 cdn 주소중에 자신아이디.cdn1.cafe24.com 에서 사용자별로 cdn뒤 숫자가 틀리거든요
체크해주시고 오타나 입력해야하는 정보 체크 한번 해보심이 좋을듯해요
그리고 업로드완료 그부분에 echo 앞뒤로 <script></script> 해줘야해요
이거 이외에 틀린거 없는거 같구요
저는 위 2가지만 수정하고 잘되더랍니다 ㅎ
혹시 위 2가지 체크해도 안되면
$makedirectory=ftp_mkdir($fc,$server_dir);
폴더 생성 후 권한 문제일수도있으니 위 소스 밑에 이것도 추가요 G5_DIR_PERMISSION는 0755
$makedirectory2=@ftp_chmod($fc,G5_DIR_PERMISSION,$server_dir);
........................................................................
안되면 안되는 오류나 상태를 말씀주셔야 ㅎㅎ....
........................................................................
도치즈님 정보 감사합니다~

ps...
//@mkdir($data_dir, G5_DIR_PERMISSION);
//@chmod($data_dir, G5_DIR_PERMISSION);
주석처리하세요 ㅋㅋ
안그럼 본서버에 폴더만 매달 생길터이니...
이런 좋은 정보가 있군요
스마트에디터2 버전으로 혹시 알려주실수있으신가요 ㅜㅜ 부탁드립니다
좋은 정보 감사합니다~
cdn도 쓸모가 있군요

게시판 목록

그누보드5 팁자료실

글쓰기
🐛 버그신고