php配置 ckeditor+ekfinder

来源:互联网 发布:googlenet 网络结构 编辑:程序博客网 时间:2024/06/01 12:29

在 PHP 裏 使用 CKEditor 和 CKFinder 插件上傳圖片.

 


1. 下載安裝 CKEditor:

http://ckeditor.com/

解壓下載到的CKEditor放到網站的路徑中即可

2. 下載安裝 CKFinder:

http://ckfinder.com/download

解壓下載到的CKEditor放到與CKEditor同一目錄中即可

 


3. 在網頁中使用 CKEditor 和 CKFinder:

CKEditor 實際是替換一個 textarea 標簽,所以把textarea放到一個form中,當提交到php伺服器端,使用$_GET['xxx'] 或者 $_POST['xxx'] 取得編輯好的數據。注意,因為 CKEditor 要替換 textarea,所以相應的javascript 代碼"CKEDITOR.replace(xxxxxx)" 要放在 textarea 的後面。

最簡單的方法,直接使用下面的例子修改一下即可。可以在網頁中看到 CKEditor 了,興奮吧。


<html>

<head>

    <meta http-equiv="Content-type" content="text/html; charset=UTF-8">

    <title>CKEditor</title>

</head>

<body>

    <form action="b.php" method="post">

        <textarea name="editor1">CKEditor Demo</textarea>

        <input type="submit" name="submit" value="Submit" />

    </form>

</body>

 


<script src="ckeditor/ckeditor.js"></script>

<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還沒有配置好。需要創建上傳文件的目錄和修改 ckfinder/config.php 裏的三個地方:

a. 創建保存上傳文件的目錄,如uploads,

其路徑為/Users/Biao/Sites/php/uploads/

[For Linux: 把其許可權設置為php server可讀寫,最簡單的是 chmod 777 uploads 這樣php server才有許可權往裏面保存文件.]

 


b. 找到配置文件第32行,把 function CheckAuthentication() { return false; }

修改成 function CheckAuthentication() { return true; }

 


c. 找到第63行,把 $baseUrl 的值改成保存上傳文件存目錄的URL,

如 $baseUrl = '/~Biao/php/uploads/';

(注意这里的路径是“/”表示是跟服务器地址下面的目录,就是因为这个问题郁闷了我一大半天)

怎麼取得這個 URL 呢?其實很簡單,在這個uploads文件夾裏創建一個簡單的path.php文件:

<?php echo $_SERVER["PHP_SELF"] ?>,然後從瀏覽器裏訪問,

就可以得到 /~Biao/php/uploads/path.php,

則 uploads 文件夾的URL是 /~Biao/php/uploads/

 


d. 找到第82行,刪除 $baseDir = resolveUrl($baseUrl); 修改 $baseDir 為上傳文件目錄的絕對路徑,

如$baseDir = '/Users/Biao/Sites/php/uploads/';


(新版本可以不改这里了)

這是因為resolveUrl($baseUrl)函數不能正常工作。

 


至此,可以使用 CKEditor 和 CKFinder 上傳文件了。

 


對上面這個小例子中伺服器端的b.php代碼:


<?php

header("Content-Type:text/html; charset=utf-8");

$str = $_POST['editor1'];

echo $str;

?>

 


可以看到,在點擊submit按鈕後,伺服器端收到了CKEditor中的內容,並使用echo輸出,生成一個與CKEditor裏面編輯的完全一樣的內容。在伺服器端可以把收到的內容保存到數據庫中。然後再讀出在相應的頁面顯示出來。

原创粉丝点击