搞了半天終於把CKEditor搞了個明明白白,配合ckfinder實現了圖片的上傳,具體步驟給需要的同志們。1、建立項目ckeditor,將ckeditor和ckfinder解壓縮放到項目下
兩個東東的下載地址分別為:
ckeditor: http://ckeditor.com/download/
ckfinder: http://ckfinder.com/download
項目目錄結構為:
ckeditor
---ckeditor
--ckfinder
--test.php 用來測試的PHP文件
2、找到ckfinder目錄下的config.php文件打開
1)定位到CheckAuthentication方法,默認此方法只有返回值false,這樣是不允許上傳文件到服務器的,需要將其進行修改,函數內已經用英文注明,不建議直接改為false,因為那樣會不安全,什麼都會上傳了,所以用session來處理一下,就成了下面的樣子
代碼如下 復制代碼session_start();
function CheckAuthentication()
{
if(isset($_SESSION['UseEditor']))//這個隨便命名就可以了
return true;
else
return false;
}
2) 配置上傳文件位置,
默認ckfinder會把上傳文件放到根目錄下的ckfinder/userfiles/images文件夾下,我們可以修改成自己的項目目錄下,在項目下建立upfiles文件夾,在config.php中找到baseUrl並且修改為:
代碼如下 復制代碼$baseUrl = '/ckeditor/upfiles/';
這樣上傳文件會保存到upfiles下的images文件夾。當然,你也可以根據需要設置不同的上傳文件夾,至於怎麼傳值給他以判斷上傳文件夾,當然是通過session了。
3、修改上傳文件名,默認系統以原有名字命名,所以我們重新命名文件。方法為:打開ckfindercoreconnectorphpphp5CommandHandler下FileUpload.php文件
找到 $sUnsafeFileName 後面加上重命名代碼,如下:
代碼如下 復制代碼$sUnsafeFileName = CKFinder_Connector_Utils_FileSystem::convertToFilesystemEncoding(CKFinder_Connector_Utils_Misc::mbBasename($uploadedFile['name']));
//先獲取原文件後綴
$sExtension=CKFinder_Connector_Utils_FileSystem::getExtension($sUnsafeFileName);
//重新命名文件
$sUnsafeFileName=date('YmdHis').'.'.$sExtension;
4、最後在test.php中使用ckfinder,代碼如下:
代碼如下 復制代碼session_start();
$_SESSION[‘UseEditor’]=’ok’;//一定別忘記這個哦,否則沒法上傳
include_once('ckeditor/ckeditor.php');
include_once('ckfinder/ckfinder.php');
$fc = new CKEditor();
CKFinder::SetupCKEditor($fc,'./ckfinder/');
$fc->editor("content", "<p>Initial value.</p>");