Загрузка изображения в редакторе - лучший подход? - PullRequest
0 голосов
/ 16 октября 2018

Я использую редактор tinymce в своем проекте.Для загрузки изображений я конвертирую изображение в base64 и отображаю его в редакторе.То есть я не загружаю никаких данных на сервер.Код выглядит следующим образом.

<Editor
                              initialValue={selectedDocument.html_content}
                              init={{
                                plugins: 'link image code, lists',
                                toolbar: 'undo redo | bold italic | alignleft aligncenter alignright | code | numlist bullist',
                                height: 600,
                                forced_root_block : "",
                                force_br_newlines : true,
                                force_p_newlines : false,
                                images_upload_handler: function (blobInfo, success, failure) {
                                  // no upload, just return the blobInfo.blob() as base64 data
                                  success("data:" + blobInfo.blob().type + ";base64," + blobInfo.base64());
                                },
                                setup: function(editor) {
                                  me.tinyMce = editor;
                                }
                              }}
                              onChange={this.handleEditorChange}
                            />

Мне просто интересно, если это правильный подход.Есть ли у этого подхода какой-либо недостаток?

или Стоит ли загружать изображение на сервер и использовать вместо него URL-адрес?

Мысли?

1 Ответ

0 голосов
/ 16 октября 2018

Вы должны загрузить изображения отдельно на сервер и заменить строку изображений base64 URL-адресами, возвращенными с сервера.

почему?

  1. Изображения base64 огромны.если у вас есть пара из них, это снизит производительность вашего редактора и вашего приложения.вы будете испытывать лаги, когда изображение будет добавлено в редактор.

  2. , поскольку изображения base64 представляют собой простые строки.когда вы загружаете их, ваше тело сообщения становится огромным.что может вызвать сбой API, если вы не настроили сервер должным образом.

  3. сохранение только RichText HTML огромно для вашей базы данных.если вы добавите в него строки изображений base64.Ваша база данных также пострадает от обработки таких данных.

...