在编辑器中上传图片-最佳方法?

时间:2018-10-16 05:39:51

标签: javascript tinymce image-uploading

我在项目中使用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 :(得分:0)

您应将图像分别上传到服务器,并用服务器返回的URL替换base64图像字符串。

为什么?

  1. base64图像很大。如果您有其中的几个,则会降低编辑器和应用程序的性能。将图像添加到编辑器时,您会遇到延迟。

  2. 因为base64图像只是纯字符串。当您上传它们时,您的帖子正文将变得巨大。如果您没有正确配置服务器,则可能会导致API失败。

  3. 仅保存RichText HTML对您的数据库而言意义重大。如果向其中添加base64图像字符串。您的数据库也将遭受处理此类数据的困扰。