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:// 缺少图像源文件地址
网上也有一些相关的问题,大致分类:
- 找不到图片路径,并且有错误的代码,大致就是上面那个。没有人回答,这问题也就不了了之了。
- 原来我在tomcat上不能运行,是因为ckfinder是php的版本。 (Σ(っ °Д °;)っ 和我有什么关系)
- 大佬直接自己写了一堆js实现了上传功能。 (Σ(っ °Д °;)っ 这是什么操作)
- 修改配置文件,看了返回的值,什么 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个小时……
如果我的工作对您有帮助,您想回馈一些东西,你可以考虑通过分享这篇文章来支持我。我非常感谢您的支持,真的。谢谢!
作者:Dba_sys (Jarmony)
转载以及引用请注明原文链接:https://www.cnblogs.com/asmurmur/p/14893226.html
本博客所有文章除特别声明外,均采用CC 署名-非商业使用-相同方式共享 许可协议。