CKEditor+CKFinder+php上傳檔案配置方法

來源:互聯網
上載者:User

新版本的CKEditor只提供了基本的文本編輯功能,上傳模組由另一個組件CKFinder。這裡主要記錄CKFinder上傳的一些參數配置,能夠成功上傳檔案,自訂上傳檔案目錄,按日期+隨機字元重新命名檔案。

1、下載CKFinder。
下載CKFinder,解壓跟CKEditor放同一目錄,下載地址:http://ckfinder.com/

2、開啟上傳功能。
開啟ckfinder\config.php檔案,找到函數CheckAuthentication(),大約在21行,將最後一行return false;改為return true;

3、自訂上傳檔案目錄。
開啟ckfinder\config.php檔案,設定變數$baseUrl = '/upload/';,大約在63行。

4、設定按日期產生上傳子目錄。
如果您的網站上傳檔案比較多,檔案都在一個目錄下的話,對檔案效能可能不是很思想,這時我們按/upload/yyyy/mm/格式組建目錄。開啟 ckfinder\config.php檔案,找到$config['ResourceType'][],大約在189行,在 'url' => $baseUrl . 'files' 和 'directory' => $baseDir . 'files' 都加上  . '/' . date("Y") . '/' . date("m"),其它 Images,Flash項也是如此。這裡的 url 表示上傳後返回到輸入框的地址,directory表示上傳檔案的目錄。

5、按日期+隨機字元重新命名上傳檔案。
這樣可以支援中文名字的檔案上傳。開啟ckfinder\core\connector\php\php5\CommandHandler\FileUpload.php檔案,在檔案最後加個組建檔案名函數

 代碼如下 複製代碼

function mySetFileName() {
    $gettime = explode(' ', microtime());
    $string = 'abcdefghijklmnopgrstuvwxyz0123456789';
    $rand = '';

    for ($x = 0; $x < 5; $x++) {
        $rand .= substr($string, mt_rand(0, strlen($string) - 1), 1);
    }

    return date("ymdHis") . substr($gettime[0], 2, 6) . $rand;
}

尋找下面代碼,大約在63行,

 代碼如下 複製代碼
if ($sFileName != $sUnsafeFileName) {
    $iErrorNumber = CKFINDER_CONNECTOR_ERROR_UPLOADED_INVALID_NAME_RENAMED;
}


在下方添加下面代碼,

 代碼如下 複製代碼
$sExtension = CKFinder_Connector_Utils_FileSystem::getExtension($sFileName);
$sFileName = mySetFileName() . '.' . $sExtension;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.