9. CKfinder.php 고찰

 

1) function CheckAuthentication()

ckfinder를 사용하기 위해 이 값을 true로 바꾸었다.

사실 이렇게 하면 아무나 내 서버에 파일을 마구 업로드를 할 수 있다.

그래서 아래와 같이 return true;를 인증된 사용자만 쓸 수 있도록 조건적으로 만들어야 한다.

return isset($_SESSION[IsAuthorized]) && $_SESSION[IsAuthorized];

session값을 가진 사람일 때 true값을 return한다.

 

2) ckfinder를 좀 더 구체적으로 알아보기

CKFinderCKEditor를 통해서 파일(일반 파일, 이미지, 플래쉬 파일)들을 업로드 할 수 있다.(일단 나는 php용을 사용한다.)

 

ckfinder/config.php의 내부.

<?php

function CheckAuthentication()

{

//session_start()를 맨 위에 넣고(여기서는 생략 함)

// return isset($_SESSION[IsAuthorized]) && $_SESSION[IsAuthorized];

// falsetrue로 변경하여 upload 가능하도록 만든다.

return true;

}

//ckfinder 라이센스 버전인 경우 값을 넣으면 정품으로 변한다.

//https://huytq.me/tools/ckfinder-keygen.html 여기에 가면 되더라.

$config[LicenseName] = '';

$config[LicenseKey] = '';

 

// 호스트명을 뺀 url 상의 경로. root바로 아래에 있는 경로다.

$baseUrl = /phpTest/data/upload/; //이걸 유동적으로 만들려고 연구 중임.

 

// 파일 시스템 상의 절대 경로를 나타낸다고 함.

$baseDir = resolveUrl($baseUrl);

 

$config[Thumbnails] = Array(

//_thumbs라는 썸네일 이미지용 폴더가 생긴다.

url => $baseUrl . _thumbs,

directory => $baseDir . _thumbs,

enabled => true,

directAccess => false,

maxWidth => 100,

maxHeight => 100,

bmpSupported => false,

quality => 80);

 

$config[RoleSessionVar] = CKFinder_UserRole;

 

$config[AccessControl][] = Array(

role => *,

resourceType => *,

folder => /,

folderView => true,

folderCreate => true,

folderRename => true,

folderDelete => true,

fileView => true,

fileUpload => true,

fileRename => true,

fileDelete => true);

 

$config[AccessControl][] = Array(

role => *,

resourceType => Images,

folder => /Logos,

folderView => true,

folderCreate => true,

folderRename => true,

folderDelete => true,

fileView => true,

fileUpload => false,

fileRename => false,

fileDelete => false);

 

$config[DefaultResourceTypes] = ;

 

// 업로드될 일반 파일들에 대한 설정..

// url 키에 값으로 $baseUrl .files

// directory 키에 값으로 $baseDir.files로 설정되어 있는 관계로

// $baseDir에 하위에 files 디렉토리가 있어야 한다.

// 또한 fileschmod 777 권한이어야 한다.

// 이 경로를 바꾸려면 이 두 값을 바꾼다.

// maxSize 키 값이 0으로 되어 있는데 이것은 업로드될 파일의 크기를 나타낸다.

// 원하는 값으로 바꾸면 됨.

//bytes, K, M, G 등으로 그 크기를 정할 수 있다고 하는데 잘 안 되네...

// allowExtensions : 업로드 허용 가능한 확장자입니다.

// deniedExtensions : 업로드 불가능한 확장자입니다.

$config[ResourceType][] = Array(

name => Files, // Single quotes not allowed

url => $baseUrl . files,

directory => $baseDir . files,

maxSize => 0,

allowedExtensions => 7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pptx,pxd,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,sitd,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip,

deniedExtensions => );

 

//위의 File과 동일하지만 이곳은 이미지와 관계된 것들.

$config[ResourceType][] = Array(

name => Images,

url => $baseUrl . images,

directory => $baseDir . images,

maxSize => "16M",

allowedExtensions => bmp,gif,jpeg,jpg,png,avi,iso,mp3,

deniedExtensions => );

 

// 마찬가지로 위의 File과 동일하지만 플래시와 관계된 것들.

$config[ResourceType][] = Array(

name => Flash,

url => $baseUrl . flash,

directory => $baseDir . flash,

maxSize => 0,

allowedExtensions => swf,flv,

deniedExtensions => );

 

// 아래는 그냥 기본 값.

$config[CheckDoubleExtension] = true;

$config[FilesystemEncoding] = UTF-8;

$config[SecureImageUploads] = true;

$config[CheckSizeAfterScaling] = true;

$config[HtmlExtensions] = array(html, htm, xml, js);

$config[HideFolders] = Array(".svn", "CVS");

$config[HideFiles] = Array(".*");

$config[ChmodFiles] = 0777 ;

$config[ChmodFolders] = 0755 ;

$config[ForceAscii] = false;

 

include_once "plugins/imageresize/plugin.php";

include_once "plugins/fileeditor/plugin.php";

 

$config[plugin_imageresize][smallThumb] = 90x90;

$config[plugin_imageresize][mediumThumb] = 120x120;

$config[plugin_imageresize][largeThumb] = 180x180;

 

 

Posted by star story :

Snippet :: Code View :: "+location.href+'
'+b+"

");top.consoleRef.document.close()}$(".snippet-container").each(function(b){$(this).find("a.snippet-text").click(function(){var d=$(this).parents(".snippet-wrap").find(".snippet-formatted");var c=$(this).parents(".snippet-wrap").find(".snippet-textonly");d.toggle();c.toggle();if(c.is(":visible")){$(this).html("html")}else{$(this).html("text")}return false});$(this).find("a.snippet-window").click(function(){var c=$(this).parents(".snippet-wrap").find(".snippet-textonly").html();a(c);$(this).blur();return false})});$(".snippet-toggle").each(function(b){$(this).click(function(){$(this).parents(".snippet-container").find(".snippet-wrap").toggle()})})});