FCKEditor 를 사용하다가 IE9에서 제대로 작동하지 않아
웹접근성에 맞춰 제작되었다는 CKEditor를 적용하기로 하였다.
기존에 FCKEditor에 포함되어 있던 파일업로드 모듈이 CKFinder로
분리되어 두개를 모두 설치하였다.
FCKEditor에서는 UTF-8로 된 페이지에서 이름이 한글인
파일을 업로드 하면 제대로 표시되지 않는 오류가 있었기때문에
CKEditor 설치후 제일 먼저 이 부분을 확인해 보았다.
ckfinder/config.php 파일에서
$config['FilesystemEncoding'] = 'EUC-KR'; 로 바꾸고 테스트를 해보았더니
업로드에는 이상이 없으나 QuickUpload시 제대로 표현을 해주지 못하였다.
(File Browse시에는 제대로 보인다.)
결국 예전 FCKEditor에서 썼던 방법을 쓰기로 하였다.
ckfinder/core/connector/php/php5/CommandHandler/FileUpload.php
(php4일 경우 php4 폴더)
파일의 sendResponse() 를 수정하면 된다.
if ($_config->forceAscii()) {
$sFileName = CKFinder_Connector_Utils_FileSystem::convertToAscii($sFileName);
}
if(preg_match('/[\xA1-\xFE]/', $sFileName)){
$sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;
$sExtension = strtolower( $sExtension ) ;
$sFileName = uniqid() . '.' . $sExtension;
}
if ($sFileName != $sUnsafeFileName) {
$iErrorNumber = CKFINDER_CONNECTOR_ERROR_UPLOADED_INVALID_NAME_RENAMED;
}
위와 같이 수정하면 한글로 된 파일명을 임의로 바꿔서 저장하게 된다.
------------------
CKEditor와는 달리 CKFinder는 유료란다.
CKFinder 대신 file browser는 포기하고 file uploader만 새로 만들어 써야겠다.