1. 下載安裝 CKEditor:
解壓下載到的CKEditor放到網站的路徑中即可
2. 下載安裝 CKFinder:
解壓下載到的CKFinder放到與CKEditor同一目錄中即可
3. 在網頁中使用 CKEditor 和 CKFinder:
CKEditor 實際是替換一個 textarea 標簽,所以把textarea放到一個form中,當提交到php服務器端,使用$_GET['xxx'] 或者 $_POST['xxx'] 取得編輯好的數據。注意,因為 CKEditor 要替換 textarea,所以相應的javascript 代碼"CKEDITOR.replace(xxxxxx)" 要放在 textarea 的后面。
最簡單的方法,直接新建一個test.html文件(和ckeditor、ckfinder處于同一級目錄)使用下面的例子修改一下即可。在瀏覽器里瀏覽test.html就可以在網頁中看到 CKEditor 了,興奮吧。
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<title>CKEditor</title>
<script src="ckeditor/ckeditor.js"></script>
</head>
<body>
<form action="b.php" method="post">
<textarea name="editor1">CKEditor Demo</textarea>
<input type="submit" name="submit" value="Submit" />
</form>
</body>
<script type="text/javascript">
// 啟用 CKEitor 的上傳功能,使用了 CKFinder 插件
CKEDITOR.replace( 'editor1', {
filebrowserBrowseUrl : 'ckfinder/ckfinder.html',
filebrowserImageBrowseUrl : 'ckfinder/ckfinder.html?Type=Images',
filebrowserFlashBrowseUrl : 'ckfinder/ckfinder.html?Type=Flash',
filebrowserUploadUrl : 'ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',
filebrowserImageUploadUrl : 'ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',
filebrowserFlashUploadUrl : 'ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'
});
</script>
</html>
4. 配置CKFinder進行上傳圖片,Flash等。
到這里,點擊 "Image" 按鈕,在彈出的窗口中的 "Upload" 標簽中已經看到上傳按鈕了,但是在上傳文件時失敗。因為CKFinder還沒有配置好。需要創(chuàng)建上傳文件的目錄和修改 ckfinder/config.php 里的三個地方:
a. 創(chuàng)建保存上傳文件的目錄,如upload
(把upload文件夾也放在和ckeditor、ckfinder處于同一級目錄,三個目錄都位于項目目錄下)
其路徑為 /upload/
[For Linux: 把其權限設置為php server可讀寫,最簡單的是 chmod 777 upload 這樣php server才有權限往里面保存文件.]
b. 找到配置文件(ckfinder/config.php)第32行,把 function CheckAuthentication() { return false; }
修改成 function CheckAuthentication() { return true; }
c. 找到第63行,把 $baseUrl 的值改成保存上傳文件存目錄的URL,
如 $baseUrl = '/項目名/upload/';(這里的地址要從項目目錄開始的絕對路徑,確定上傳目錄已經存在)
d. 找到第82行,刪除 $baseDir = resolveUrl($baseUrl); 修改 $baseDir 為上傳文件目錄的絕對路徑,(不能刪除,否則不能上傳)(本地測試的時候要從磁盤的跟目錄下開始,即C:/或者D:/的直接目錄)
如$baseDir = '/Apache2/htdocs/ck/upload/'; (Apache2是D:/盤下的直接目錄)
這是因為resolveUrl($baseUrl)函數不能正常工作。
至此,可以使用 CKEditor 和 CKFinder 上傳文件了。
對上面這個小例子中服務器端的b.php代碼:
<?php
header("Content-Type:text/html; charset=utf-8");
$str = $_POST['editor1'];
echo $str;
?>
可以看到,在點擊submit按鈕后,服務器端收到了CKEditor中的內容,并使用echo輸出,生成一個與CKEditor里面編輯的完全一樣的內容。在服務器端可以把收到的內容保存到數據庫中。然后再讀出在相應的頁面顯示出來。