Ckeditor 缺少圖像源文件地址的解決 笨笨的人都看啦!
- 2021 年 6 月 17 日
- 筆記
- PHP problem
Ckeditor
本文是關於CKEditor 無法上傳圖片問題的一個解決。我大致寫了一下遇到問題的過程,問題的出處,怎麼解決的,原因是什麼。
希望能夠幫到有需要的大家,有些時候找不到問題的答案,真的是會讓人神魂顛倒。
Ckeditor是新一代的FCKeditor,是一個重新開發的版本。Ckeditor是全球最優秀的網頁在線文字編輯器之一,因其驚人的性能與可擴展性而廣泛的被運用於各大網站。
今天在給自己的博客項目上添加ckeditor時,進行了一些測試。 出現了缺少圖像源文件地址的問題!
在ckeditor的配置文件中,添加上關聯ckfinder的代碼,就可以使用上傳的功能了。

但是到了上傳文件的時候,這個編輯器總是會卡死,在上傳處出現一些隱蔽的代碼。

getDocumentRootPath() . $baseUrl;}
$utilsSecurity =& CKFinder_Connector_Core_Factory::getInstance("Utils_Security");
$utilsSecurity->getRidOfMagicQuotes();
/** * $config must be initialised */ $config = array();
$config['Hooks'] = array();
$config['Plugins'] = array();
/** * Fix cookies bug in Flash. */
if (!empty($_GET['command']) && $_GET['command'] == 'FileUpload' && !empty($_POST))
{ foreach ($_POST as $key => $val)
{ if (strpos($key, "ckfcookie_") === 0) $_COOKIE[str_replace("ckfcookie_", "", $key)] = $val;
}
}
/** * read config file */ require_once CKFINDER_CONNECTOR_CONFIG_FILE_PATH;
CKFinder_Connector_Core_Factory::initFactory();
$connector =& CKFinder_Connector_Core_Factory::getInstance("Core_Connector");
if(isset($_GET['command'])) { $connector->executeCommand($_GET['command']);
} else { $connector->handleInvalidCommand();
}
file:// 缺少圖像源文件地址
從上午10點開始搞這個ckeidtor,ckfinder,什麼uiColor了,width了,都弄的差不多了,關聯上了ckfinder,打開測試的網頁,上傳按鈕的出現就像是夏日裏一枚冰涼的玲瓏櫻桃,看着它我滿懷的欣慰與自豪。
選擇圖片文件,上傳至服務器,但是…..
不!不!不!
他卡在那裡,並且爆出一個無法找到圖片源文件的提示…
我的大腦一片空白,爆出了一個蒙圈的感覺…
只能網上去搜別人的解決方法了,這時候已經11點了,我想吃飯!
網上也有一些相關的問題,大致分類:
01.找不到圖片路徑,並且有錯誤的代碼,大致就是上面那個。沒有人回答,這問題也就不了了之了。
02.原來我在tomcat上不能運行,是因為ckfinder是php的版本。 (Σ(っ °Д °;)っ 和我有什麼關係)
03.大佬直接自己寫了一堆js實現了上傳功能。 (Σ(っ °Д °;)っ 這是什麼操作)
04.修改配置文件,看了返回的值,什麼 PHP V9 (Σ(っ °Д °;)っ 不可以用)
嘗試一圈基本無果,這時候已經12點了,我想吃飯!
可是生活的骨感硌的人生疼,這東西不弄完,怎麼做接下來的事情?哎…
死馬當做活馬醫,直接把測試代碼里的ckeditor,ckfinder複製到項目真實環境里,一頓操作。
嘀嘀嘀。弄完了。
我賊心不改,究竟你是什麼妖怪!
帶着這麼多天的辛勤勞動,我的鼠標飛快的點擊訪問服務器,登錄,添加文章,一氣呵成!
點擊上傳文件,上傳到服務器。
成功了!!!!!
為什麼會這樣,蒼天吶!
心裏一個聲音說,接着做吧,能用就行了,一個插件,不需要那麼懂,能跑就行了。
這時候已經13點了,飯都沒了。
究竟是為什麼呢?一遍遍的修改測試代碼
$baseUrl,看ckfinder 的配置文件,上傳文件的 PHP代碼。瀏覽器里一遍一遍的看那幾個按鈕關聯的東西….
php的版本有些低(5.4.45)不能運行人家的代碼,要不要換一個高版本。因為確實有時候一些函數在低版本的php中不能使用。
毫無結果…..
兩點了還是沒搞出來。如果今天栽在這裡,我的AI學習之路怎麼辦,web安全之路怎麼辦,我的音樂之路怎麼辦,我的下半輩子怎麼存在。博客園可不可以連載小說?
已經餓的胡思亂想了
但是突然的靈機一動!
resolve
這裡出現了一個問題,就是在測試代碼的目錄下 網站根目錄/test 下,設置好兩個ck文件,一個測試的test.html,但是上傳的時候出現找不到圖片源地址的情況。
然後我想,還要作後面的一堆東西呢,直接把這兩ck文件,放到了正常的目錄下。然後就可以正常上傳了。
可以使用的時候是在網站里調用的,測試時是在文件直接打開test.html中調用的。
這兩個之間的差別,就是運行時的目錄不同。
我們瀏覽時,打開直接打開,文件管理系統中的文件
file:///C:/phpStudy/WWW/blog/test/39test2.html
但是這個東西提交的時候,是提交到服務器端,誰是服務器端?這個東西怎麼知道?一個單一的文件怎麼可以調用php這個服務器端的腳本呢?
所以無法調用服務器端的php代碼,就會出現上面的那個php報錯的信息,同時它也不清楚傳到那裡去,就會出現找不到圖片源地址的錯誤。
經驗之談
雖然有些東西完全可以在單個文檔中測試,但是如果事關服務器,那就要在瀏覽器里鍵入網站的測試代碼目錄和文件,進行訪問測試,而不能在本機上,離服務器一個西天的距離去測試。
以後要測試代碼,最好直接通過web來訪問測試文件夾,和測試的代碼,而不能直接打開測試代碼,那樣就會和服務器脫節。
測試文件說: 哎,我一個小小的文件,怎麼知道你的服務器在哪裡? 😩
有時候就是這麼一個小小的問題,確實很困擾人!
解決辦法: 服務器端測試即可,可千萬別文件測試了!
希望大家給點個贊吶。
精品原創吶。

