Ckeditor 缺少圖像源文件地址的解決 由錯誤測試位置引起


Ckeditor

本文是關於CKEditor 無法上傳圖片問題的一個解決。大致寫了一下遇到問題的過程,問題的出處,怎么解決的,原因是什么。

希望能夠幫到有需要的大家,有些時候找不到問題的答案,真的是會讓人神魂顛倒。

Ckeditor是新一代的FCKeditor,是一個重新開發的版本。Ckeditor是全球最優秀的網頁在線文字編輯器之一,因其驚人的性能與可擴展性而廣泛的被運用於各大網站。

今天在給自己的博客項目上添加ckeditor時,進行了一些測試。 出現了缺少圖像源文件地址的問題!

在ckeditor的配置文件中,添加上關聯ckfinder的代碼,當然我們也要有ckfinder,就可以使用上傳的功能了。

在ckedittor的配置文件 config.js 中 加入連接的配置代碼。放到最后就好了。

// 載入CKfinder
	config.filebrowserBrowseUrl = '/App/Back/Public/ckfinder/ckfinder.html'; 
	config.filebrowserImageBrowseUrl = '/App/Back/Public/ckfinder/ckfinder.html?Type=Images';  
	config.filebrowserFlashBrowseUrl = '/App/Back/Public/ckfinder/ckfinder.html?Type=Flash'; 
	config.filebrowserUploadUrl = '/App/Back/Public/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files'; 
	config.filebrowserImageUploadUrl = '/App/Back/Public/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images'; 
	config.filebrowserFlashUploadUrl = '/App/Back/Public/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash';

成功后:

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

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:// 缺少圖像源文件地址

網上也有一些相關的問題,大致分類:

  1. 找不到圖片路徑,並且有錯誤的代碼,大致就是上面那個。沒有人回答,這問題也就不了了之了。
  2. 原來我在tomcat上不能運行,是因為ckfinder是php的版本。 (Σ(っ °Д °;)っ 和我有什么關系)
  3. 大佬直接自己寫了一堆js實現了上傳功能。 (Σ(っ °Д °;)っ 這是什么操作)
  4. 修改配置文件,看了返回的值,什么 PHP V9 (Σ(っ °Д °;)っ 不可以用)

resolve

這里出現了一個問題,就是在測試代碼的網站文件目錄/test*下,設置好兩個ck文件,一個測試的test.html,但是上傳的時候出現找不到圖片源地址的情況。

然后想,還要作后面的一堆東西呢,直接把這兩ck文件,放到了正常的目錄下。然后就可以正常上傳了。

可以使用的時候是訪問網站調用的,測試時是在文件直接打開test.html中調用的。

這兩個之間的差別,就是運行時的目錄不同

錯誤的測試:
直接打開,文件管理系統中的文件
file:///C:/phpStudy/WWW/blog/test/39test2.html
但是這個東西提交的時候,是提交到服務器端,誰是服務器端?這個東西怎么知道?一個單一的文件怎么可以調用php這個服務器端的腳本呢?

所以無法調用服務器端的php代碼,就會出現上面的那個php報錯的信息,同時它也不清楚傳到那里去,就會出現找不到圖片源地址的錯誤。

正確的測試:
www.blog.com/test/39test2.html

經驗之談

雖然有些東西完全可以在單個文檔中測試,但是如果事關服務器,那就要在瀏覽器里鍵入網站的測試代碼目錄和文件,進行訪問測試,而不能在本機上,離服務器一個西天的距離去測試。

以后要測試代碼,最好直接通過web來訪問測試文件夾,和測試的代碼,而不能直接打開測試代碼,那樣就會和服務器脫節。

測試文件說: 哎,我一個小小的文件,怎么知道你的服務器在哪里? 😩

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

解決辦法: 訪問服務器端測試即可,可千萬別文件測試了!

其實這個東西並沒有那么難想到,但因為是自學,很多東西如果有個老師在旁邊,一兩句話就解決的事情,哪里需要吭哧吭哧想上4-5個小時……


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM