Ckeditor 缺少影像原始檔地址的解決 笨笨的人都看啦!

Dba_sys發表於2021-06-17

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來訪問測試資料夾,和測試的程式碼,而不能直接開啟測試程式碼,那樣就會和伺服器脫節。

測試檔案說: 哎,我一個小小的檔案,怎麼知道你的伺服器在哪裡? ?

有時候就是這麼一個小小的問題,確實很困擾人!

解決辦法: 伺服器端測試即可,可千萬別檔案測試了!

希望大家給點個贊吶。

精品原創吶。

相關文章