Ckeditor 缺少图像源文件地址的解决 笨笨的人都看啦!

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来访问测试文件夹,和测试的代码,而不能直接打开测试代码,那样就会和服务器脱节。

测试文件说: 哎,我一个小小的文件,怎么知道你的服务器在哪里? 😩

有时候就是这么一个小小的问题,确实很困扰人!

解决办法: 服务器端测试即可,可千万别文件测试了!

希望大家给点个赞呐。

精品原创呐。