我在项目中使用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代替?
有想法吗?
答案 0 :(得分:0)
您应将图像分别上传到服务器,并用服务器返回的URL替换base64图像字符串。
base64图像很大。如果您有其中的几个,则会降低编辑器和应用程序的性能。将图像添加到编辑器时,您会遇到延迟。
因为base64图像只是纯字符串。当您上传它们时,您的帖子正文将变得巨大。如果您没有正确配置服务器,则可能会导致API失败。
仅保存RichText HTML对您的数据库而言意义重大。如果向其中添加base64图像字符串。您的数据库也将遭受处理此类数据的困扰。