我使用的是ckeditor 5 classic,这是我拥有的:
ClassicEditor.create(document.querySelector('#editor'),
{
toolbar: ['imageUpload', .....],
ckfinder: {
uploadUrl: '/CKEditorUpload/UploadImage'
}
})
然后,我创建了自己的服务器端控制器,并且能够获取数据并将文件保存在服务器上。我传回了JSON,ckeditor 5能够成功插入图像。
return Json(new {uploaded="true", url="/uploads/xxxxx.jpeg"});
在JSON中,成功的响应如下所示:
{
"uploaded": "true",
"url": "/uploads/xxxxx.jpeg"
}
但是,我真正想要的是对图像进行base64编码,然后将其返回给ckeditor 5,以便将其嵌入:
<img src="data:image/jpeg;base64, xxxxxxxxx" />
确实,我在ckeditor 4中成功做到了这一点,但是对于ckeditor 5,不再有“ window.parent.CKEDITOR.tools.callFunction”了。我的服务器控制器如何将base64数据正确返回给客户端,以便Ckeditor 5能够嵌入它?预先感谢您的帮助。
答案 0 :(得分:0)
我弄清楚了自己...在C#中,这就是我将Controller中的编码数据返回给客户端的方式,并且它可以正常工作。
var data= "data:image/png;base64,xxxxxxxxxxxxxxxxxxx";
return Json(new { uploaded = "true", url = HttpUtility.JavaScriptStringEncode(data ?? "") });
换句话说,JSON消息看起来像这样。我没想到“ URL”会占用base64。无论如何,它都能正常工作。希望这对其他人有帮助。
{
"uploaded": "true",
"url": "data:image/png;base64,xxxxxxxxxxxxxxxxxxx"
}