0

我将 KCFinder 集成到 KCEditor 中,以便在 Codeigniter 站点中上传图像。当我创建一个页面时,它可以工作。我可以将图像上传到服务器并将它们插入页面。但是当我从 MySQL 将页面返回到 CKEditor 进行编辑时,当我尝试浏览图像时,KCFinder 会抛出 404 错误。

问题是在编辑时,图像浏览器获取的 URL 错误!但是编辑页面和创建页面都链接到同一个 KCFinder 文件夹,所以我不明白为什么它在页面编辑期间会中断。

以下是 ckeditor 的 config.js 文件中的 URL:

   config.filebrowserBrowseUrl = '../kcfinder/browse.php?opener=ckeditor&type=files';
   config.filebrowserImageBrowseUrl = '../kcfinder/browse.php?opener=ckeditor&type=images';
   config.filebrowserFlashBrowseUrl = '../kcfinder/browse.php?opener=ckeditor&type=flash';
   config.filebrowserUploadUrl = '../kcfinder/upload.php?opener=ckeditor&type=files';
   config.filebrowserImageUploadUrl = '../kcfinder/upload.php?opener=ckeditor&type=images';
   config.filebrowserFlashUploadUrl = '../kcfinder/upload.php?opener=ckeditor&type=flash';

我可以解决这个问题的唯一方法是使用绝对 URL。所以我用http://localhost.dev替换了所有路径的 ../ ,就像这样......

config.filebrowserBrowseUrl = 'http://localhost.dev/kcfinder/browse.php?opener=ckeditor&type=files';  

这解决了问题,但出于可移植性的原因,我不喜欢绝对 URL(每当我将站点移动到不同的环境时,我都必须更改 URL)。有没有办法可以解决这个问题并维护相对 URL?N/B 任何无痛的替代品都是最受欢迎的。

4

1 回答 1

1

如果 KCFinder 位于 CKEditor 安装的 plugins 文件夹中:

config.filebrowserBrowseUrl = CKEDITOR.getUrl( CKEDITOR.plugins.getPath( 'kcfinder' ) + 'browse.php?type=files' );
config.filebrowserImageBrowseUrl = CKEDITOR.getUrl( CKEDITOR.plugins.getPath( 'kcfinder' ) + 'browse.php?type=images' );
config.filebrowserFlashBrowseUrl = CKEDITOR.getUrl( CKEDITOR.plugins.getPath( 'kcfinder' ) + 'browse.php?type=flash' );
config.filebrowserUploadUrl = CKEDITOR.getUrl( CKEDITOR.plugins.getPath( 'kcfinder' ) + 'upload.php?type=files' );
config.filebrowserImageUploadUrl = CKEDITOR.getUrl( CKEDITOR.plugins.getPath( 'kcfinder' ) + 'upload.php?type=images' );
config.filebrowserFlashUploadUrl = CKEDITOR.getUrl( CKEDITOR.plugins.getPath( 'kcfinder' ) + 'upload.php?type=flash' );
于 2016-06-29T07:12:02.967 回答