当前位置 博文首页 > Dba_sys:Ckeditor 缺少图像源文件地址的解决 笨笨的人都看啦!

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

    作者:Dba_sys 时间:2021-06-17 18:27

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

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

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

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

    希望大家给点个赞呐。

    精品原创呐。

    bk