通过拖放插入图像时,CKFinder会收到错误的响应

时间:2015-07-14 18:58:45

标签: coldfusion ckeditor ckfinder

我正在使用CKEditor 4.5.1和CKFinder 2.5 for ColdFusion 8以及增强型图像和上传图像插件。

我已成功将CKFinder与CKEditor集成,我可以使用普通的CKFinder接口将图像插入编辑器。他们上传到正确的文件夹并在编辑器中显示就好了。我可以将图像拖放到CKFinder界面,然后上传并在CKEditor中显示就好了。

但是,当我尝试将图像直接拖放到编辑器窗口时,我收到“不正确的服务器响应”消息。

使用Chrome的开发人员工具和Fiddler,我看到当我将图像拖放到CKFinder的界面时,它会调用连接器的QuickUpload方法并返回正确的JSON响应。当我将图像拖放到编辑器的界面时,它调用相同的QuickUpload方法,上传失败,只返回 0 ,根本没有JSON。文档说即使出现故障,它仍然应该发回JSON并显示错误消息。

我已正常实例化CKEditor。

<script src="/js/plugin/ckeditor/ckeditor.js"></script>
<script src="/js/plugin/ckfinder/ckfinder.js"></script>
<script type="text/javascript">
    CKEDITOR.replace( 'message');
</script>

在编辑器的config.js文件中,我设置了所需的网址。

config.filebrowserBrowseUrl = '/js/plugin/ckfinder/ckfinder.html';
config.filebrowserImageBrowseUrl = '/js/plugin/ckfinder/ckfinder.html?type=Images';
config.filebrowserUploadUrl = '/js/plugin/ckfinder/core/connector/cfm/connector.cfm?command=QuickUpload&type=Files';
config.filebrowserImageUploadUrl = '/js/plugin/ckfinder/core/connector/cfm/connector.cfm?command=QuickUpload&type=Images';

我激活了上传图片插件(所有依赖项都是在构建时下载的。)

config.extraPlugins = 'image2,uploadimage';

根据文档,我不需要设置config.uploadUrl,因为我设置了config.filebrowserUploadUrl,但我也尝试设置uploadUrl,结果没有区别。

当我拖放到主CKEditor界面时,为什么CKFinder无法上传和发回错误的响应?

2 个答案:

答案 0 :(得分:2)

2.5.0的CKFinder支持JSON响应。为了实现此目的,there must be responseType=json仅在使用config.uploadUrl配置时为请求设置的url参数:

config.uploadUrl =
    '/js/plugin/ckfinder/core/connector/cfm/connector.cfm?command=QuickUpload&type=Files&responseType=json';

如果您正在使用filebrowserUploadUrl,那么CKEditor会为您添加此标记。

但是,如果您同时设置confing.uploadUrlfilebrowserUploadUrl,那么只有config.uploadUrl才能通过d&amp; d上传文件。

答案 1 :(得分:1)

我刚刚尝试了以下代码,它对我来说完全没问题:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>CKEditor</title>
        <script src="//cdn.ckeditor.com/4.5.1/standard-all/ckeditor.js"></script>
    </head>
    <body>
        <textarea name="editor1"></textarea>
        <script>
            CKEDITOR.replace( 'editor1', {
                filebrowserBrowseUrl: '/js/plugin/ckfinder/ckfinder.html',
                filebrowserImageBrowseUrl: '/js/plugin/ckfinder/ckfinder.html?type=Images',
                filebrowserUploadUrl: '/js/plugin/ckfinder/core/connector/cfm/connector.cfm?command=QuickUpload&type=Files',
                filebrowserImageUploadUrl: '/js/plugin/ckfinder/core/connector/cfm/connector.cfm?command=QuickUpload&type=Images',
                extraPlugins: 'image2,uploadimage'
}           );
        </script>
    </body>
</html>

请确保您使用的是最新版本的CKFinder(2.5.0.1)。

如果您已指定uploadUrl,则无需设置filebrowserUploadUrl配置。