Как загрузить изображение и вставить его в формат base64 в ckeditor5? - PullRequest
1 голос
/ 14 мая 2019

Я использую 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 мог их встроить?Спасибо за помощь заранее.

1 Ответ

0 голосов
/ 16 мая 2019

Я сам разобрался ... В 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"
}
...