ckeditor 4.5 fileUploadRequest事件未触发

use*_*989 3 ckeditor

我有一个带有html id"id_textarea"的textarea.

editor = CKEDITOR.inline( 'id_textarea', {
    filebrowserBrowseUrl : 'browse_url',
    filebrowserUploadUrl : 'upload_url'
});

editor.on( 'fileUploadRequest', function( evt ) {
    console.log("This is not printing");
});
Run Code Online (Sandbox Code Playgroud)

每当我尝试上传文件时,它都不会向控制台打印任何内容.难道我做错了什么?

顺便说一句,我的要求是在发送请求之前添加csrf头文件,我需要捕获一些像fileUploadRequest这样的事件.

f1a*_*mes 6

我假设您正尝试通过"图像属性"对话框中的"上载"选项卡上载文件.它是由所提供的文件浏览器插件fileButton不支持的fileUploadRequestfileUploadResponse事件(已经有一个功能要求与这种情况下的更深入的说明).

如果您希望将这些事件用于某些自定义请求预处理,则可以使用"上载图像"插件.官方文档中描述了配置过程,但请记住,它仅适用于删除或粘贴文件.通过"图像属性"对话框上传仍将由不支持这些事件的文件浏览器插件处理.

这里重要的是,自CKEditor 4.5.6以来,文件浏览器插件使用CSRF头,因此可以在服务器端使用它,而无需对JavaScript代码进行任何修改.因此,如果您使用的是旧版本,我建议更新到4.5.6(使用例如CKBuilder)并尝试与您的后端集成.文件浏览器插件中的CSRF标头应该足以满足您的需求.

这是标题: 在此输入图像描述

  • `filebrowser`插件使用旧的API(http://docs.ckeditor.com/#!/guide/dev_file_browser_api).`fileUploadRequest`是新API的一部分(http://docs.ckeditor.com/#!/guide/dev_file_upload),稍后会介绍,因此旧的`filebrowser`插件不会触发新事件.有一天,插件将被重写以使用新的API,但现在您需要使用旧的API作为`filebrowser`和new来上传已删除和粘贴的文件. (3认同)