欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > 【js + ckeditor】插入base64格式的图片

【js + ckeditor】插入base64格式的图片

2025/5/12 1:24:25 来源:https://blog.csdn.net/m0_65041204/article/details/139993997  浏览:    关键词:【js + ckeditor】插入base64格式的图片

一、需求说明

直接把图片转成base64插入到富文本

二、需求分析

1、富文本图片格式处理位置

在ckeidtor的目录下有个plugins文件夹,在plugins下新建一个文件夹(自己命名,如simpleupload),进入simpleupload文件夹,再新建一个plugins.js文件,对应编写js代码。

2、将图片转为base64

通过调用 FileReader 对象的 readAsDataURL 方法可以将文件读取成一个data URL,再通过这个 data URL 来获取 Base64字符串。

 三、解决办法

plugins.js文件全部代码如下:

(function () {// 保存图片方式:选择图片以base64编码保存var a = {exec: function (editor) {// 此处定义点击按钮时的行为var $file = document.createElement("input");$file.type = "file";$file.accept = ".jpg,.png,.jpeg";// $file.multiple = "multiple";//选择图片时,可以多选$file.click();$file.addEventListener("change", function (e) {var fileList = e.target.files;if (fileList.length > 0) {// 因为一次只允许添加一张图片var imageData = fileList[0];// 检测后缀名var lastIndex = imageData.name.lastIndexOf(".");var imageSuffix = imageData.name.substring(lastIndex + 1);// 判断后缀名if (!(imageSuffix === "png" || imageSuffix === "jpg" || imageSuffix === "jpeg")) {alert('图片格式只支持"png, jpg, jpeg格式"');return;}// 大小不能超过2Mif (imageData.size > 2 * 1024 * 1024) {alert("图片大小不能超过2M");return;}// 使用FileReader接口读取图片var reader = new FileReader();reader.addEventListener("load", function () {var imageBase64 = reader.result; //base64编码editor.insertHtml("<p><img style='max-width:70%' class='ckeditorImg' src=" + imageBase64 + "  ></p>");});// 将图片转成base64格式reader.readAsDataURL(imageData);editor.isImg = true;editor.imgUrl = reader.result;return editor;}});}};b = "simpleupload";CKEDITOR.plugins.add(b, {init: function (editor) {editor.addCommand(b, a);editor.ui.addButton("simpleupload", {label: "添加图片", //鼠标悬停在插件上时显示的名字icon: "plugins/simpleupload/uploadImg.png", //自定义图标的路径command: b,id: "simpleupload"});}});
})();

四、参考链接

参考1:前端实现ckeditor插入图片,不必经过上传到服务器再插入到富文本

参考2:【JS】img标签使用base64图片以及如何将图片转为base64格式_img base64-CSDN博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词