CKeditor与FCKeditor文件浏览器的集成

CKeditor与FCKeditor文件浏览器的集成,ckeditor,fckeditor,Ckeditor,Fckeditor,我使用的是CKEditor 3,我需要集成一个免费的文件浏览器/上传器。我尝试集成FCKEditor附带的一个,但我: 服务器没有发送回正确的XML响应。请与您的系统管理员联系 XML请求错误:OK(200) 请求的URL:http://example.com/admin/filemanager/browser/default/?Command=GetFoldersAndFiles&Type=File&CurrentFolder=%2F&uuid=1260817820353 答复案文: <

我使用的是CKEditor 3,我需要集成一个免费的文件浏览器/上传器。我尝试集成FCKEditor附带的一个,但我:

服务器没有发送回正确的XML响应。请与您的系统管理员联系

XML请求错误:OK(200)

请求的URL:
http://example.com/admin/filemanager/browser/default/?Command=GetFoldersAndFiles&Type=File&CurrentFolder=%2F&uuid=1260817820353

答复案文:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
 <head>
  <title>Index of /admin/filemanager/browser/default</title>
 </head>
 <body>
<h1>Index of /admin/filemanager/browser/default</h1>
<table><tr><th><img src="/icons/blank.gif" alt="[ICO]"></th>
  <th><a href="?C=N;O=D">Name</a></th>
  <th><a href="?C=M;O=A">Last modified</a></th>
  <th><a href="?C=S;O=A">Size</a></th>
  <th><a href="?C=D;O=A">Description</a></th></tr>
<!-- edited for brevity -->

/admin/filemanager/browser/default的索引
/admin/filemanager/browser/default的索引
我试着这样做:

<script type="text/javascript">
 window.onload = function(){
  CKEDITOR.config.language='es';
  CKEDITOR.config.forcePasteAsPlainText = true;
  CKEDITOR.config.enterMode = CKEDITOR.ENTER_DIV;
  CKEDITOR.replace('ncCont',{
    filebrowserBrowseUrl: 'filemanager/browser/default/browser.html',
    filebrowserUploadUrl : 'filemanager/connectors/php/upload.php'
  });
 };
</script>

window.onload=函数(){
CKEDITOR.config.language='es';
CKEDITOR.config.forcePasteAsPlainText=true;
CKEDITOR.config.enterMode=CKEDITOR.ENTER\u DIV;
CKEDITOR.replace('ncCont'{
filebrowserBrowseUrl:'filemanager/browser/default/browser.html',
filebrowserUploadUrl:'filemanager/connectors/php/upload.php'
});
};

FCKeditor能否与CKEditor集成?如果是,如何做到这一点?如果没有,是否有免费的文件浏览器/上传器替代方案?

我正在使用自定义文件浏览器和我的ckeditor实现,因此我不明白为什么不能使用旧的文件浏览器。它使用相同的javascript来填充编辑器


只需在任何目录中安装旧的FCK编辑器,并确保您的配置中有指向该浏览器的正确路径。我猜你上面有一个路径问题。

为了回答你的问题,我在我的博客上发布了一个小教程,逐步说明如何在CKEditor中集成FCKEditor的文件浏览器。请转到:

我已经为PHP连接器完成了这项工作,但对于其他语言也应该非常简单


您还可以下载已经完成的示例或查看本文中的演示。

想借用Penuel,他的代码对我帮助很大

将其添加到/filemanager/connectors/php/upload.php

// Get the CKEditor Callback
$CKEcallback = $_GET['CKEditorFuncNum'];

//modify the next line adding in the new param
FileUpload($sType, $sCurrentFolder, $sCommand, $CKEcallback);
将其添加到/filemanager/connectors/php/io.php

// This is the function that sends the results of the uploading process to CKE.
function SendCKEditorResults ($callback, $sFileUrl, $customMsg = '')
{
  echo '<script type="text/javascript">';

  $rpl = array( '\\' => '\\\\', '"' => '\\"' ) ;

  echo 'window.parent.CKEDITOR.tools.callFunction("'. $callback. '","'.
    strtr($sFileUrl, $rpl). '", "'. strtr( $customMsg, $rpl). '");' ; 

  echo '</script>';
}
您需要将上载URL添加到CKEDITOR定义中,如下所示:

  var filemanager = '/js/ckeditor/filemanager/';
  var browser = filemanager + 'browser/default/browser.html';
  var connector = filemanager + 'connectors/php/connector.php';
  var upload = filemanager + 'connectors/php/upload.php';
  CKEDITOR.replace( id,
  {    
    customConfig : this.config,
    filebrowserBrowseUrl : browser +'?Connector=' + connector,
    filebrowserImageBrowseUrl : browser + '?Type=Image&Connector='
      + connector,
    filebrowserFlashBrowseUrl : browser + '?Type=Flash&Connector=' 
      + connector,
    filebrowserUploadUrl : upload + '?type=Files',
    filebrowserImageUploadUrl : upload + '?type=Images',
    filebrowserFlashUploadUrl : upload + '?type=Flash'
  });

我认为这涵盖了Penuel留下的所有内容

我遵循了这个指南,但在选择要上传的图像并按“发送到服务器”后,我总是会得到“Cannot POST/filemanager/connectors/php/upload.php?type=Images&;CKEditor=htmlSlide0&;CKEditorFuncNum=0&;langCode=de”,我认为“&”会被替换为“&”这会破坏字符串,但我找不到这样做的代码(不知道php)。有什么帮助/建议吗?我遵循了上面的指南,但在选择要上传的图像并按“发送到服务器”后,我总是得到“Cannot POST/filemanager/connectors/php/upload.php?type=Images&;CKEditor=htmlSlide0&;CKEditorFuncNum=0&;langCode=de”,我假设“&”被替换为“&”,这会破坏字符串,但是我找不到这样做的代码(不知道php)。有什么帮助/建议吗?
  var filemanager = '/js/ckeditor/filemanager/';
  var browser = filemanager + 'browser/default/browser.html';
  var connector = filemanager + 'connectors/php/connector.php';
  var upload = filemanager + 'connectors/php/upload.php';
  CKEDITOR.replace( id,
  {    
    customConfig : this.config,
    filebrowserBrowseUrl : browser +'?Connector=' + connector,
    filebrowserImageBrowseUrl : browser + '?Type=Image&Connector='
      + connector,
    filebrowserFlashBrowseUrl : browser + '?Type=Flash&Connector=' 
      + connector,
    filebrowserUploadUrl : upload + '?type=Files',
    filebrowserImageUploadUrl : upload + '?type=Images',
    filebrowserFlashUploadUrl : upload + '?type=Flash'
  });