强大的富文本编辑器:quill
github:32k start++,:https://github.com/quilljs/quill

quill粘贴图片上传服务器

<link href="//cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet"><div id="editor" style="height: 370px"><p>Hello World!</p>
</div>
<script src="//cdn.quilljs.com/1.3.6/quill.min.js"></script>
<script>var toolbarOptions = [['bold', 'italic', 'underline', 'strike'],        // toggled buttons['blockquote', 'code-block'],[{'header': 1}, {'header': 2}],               // custom button values[{'list': 'ordered'}, {'list': 'bullet'}],[{'script': 'sub'}, {'script': 'super'}],      // superscript/subscript[{'indent': '-1'}, {'indent': '+1'}],          // outdent/indent[{'direction': 'rtl'}],                         // text direction[{'size': ['small', false, 'large', 'huge']}],  // custom dropdown[{'header': [1, 2, 3, 4, 5, 6, false]}],[{'color': []}, {'background': []}],          // dropdown with defaults from theme[{'font': []}],[{'align': []}],['image'],['clean']                                         // remove formatting button];var editor = new Quill('#editor', {modules: {toolbar: toolbarOptions},theme: 'snow',});// 粘贴图片上传服务器editor.root.addEventListener("paste", (e) => {console.log(e)console.log(this)const clipboardData = e.clipboardData// support cut by software & copy image file directlyconst isImage = clipboardData.types.length && clipboardData.types.join('').includes('Files');if (!isImage) {return;}// only support single image pasteconst file = clipboardData.files[0];if (!file || !file.name || !(file.name.toLowerCase().indexOf(".png") !== -1 || file.name.toLowerCase().indexOf(".gif") !== -1|| file.name.toLowerCase().indexOf(".jpg") !== -1)) {console.log('粘贴的不是图片')return;}var formData = new FormData;formData.append('file', file)// 在此执行上传$.ajax({data: formData,processData: false,//不做处理contentType: false,//不做处理sync: false,url: '/file/up/img',type: 'post',success(data) {console.log(data)if (data.code==0){const range = editor.getSelection(true);editor.insertEmbed(range.index, 'image', data.data);}else {layer.msg(data.msg)}}})})editor.clipboard.addMatcher('IMG', (node, delta) => {const Delta = Quill.import('delta')// 忽略base64插入操作return new Delta().insert('')})</script>

上传图片到服务器返回url处理

完整代码

<link href="//cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet">
<script src="//cdn.quilljs.com/1.3.6/quill.min.js"></script><div id="editor" style="height: 370px"><p>Hello World!</p>
</div><input id="opImg" style="display: none;" type="file" onchange="addImg(this)"accept="image/gif,image/jpeg,image/jpg,image/png,image/svg">
<script>var editor,$function addImg(e) {const upImg = e.files[0];console.log(editor)var formData = new FormData;formData.append('file', upImg)$.ajax({data: formData,processData: false,//不做处理contentType: false,//不做处理sync: false,url: '/file/up/img',type: 'post',success(data) {console.log(data)if (data.code == 0) {const range = editor.getSelection(true);editor.insertEmbed(range.index, 'image', data.data);} else {layer.msg(data.msg)}}})}function imageHandler(e) {// 在此执打开图片选择,行同步上传/*const range = this.quill.getSelection(true);this.quill.insertEmbed(range.index, 'image', 'http://localhost:8080/res/images/logo.png');*/document.getElementById('opImg').click()}layui.use(['layer', 'jquery', 'form'], function () {$ = layui.jqueryvar layer = layui.layer, form = layui.formvar toolbarOptions = [['bold', 'italic', 'underline', 'strike'],        // toggled buttons['blockquote', 'code-block'],[{'header': 1}, {'header': 2}],               // custom button values[{'list': 'ordered'}, {'list': 'bullet'}],[{'script': 'sub'}, {'script': 'super'}],      // superscript/subscript[{'indent': '-1'}, {'indent': '+1'}],          // outdent/indent[{'direction': 'rtl'}],                         // text direction[{'size': ['small', false, 'large', 'huge']}],  // custom dropdown[{'header': [1, 2, 3, 4, 5, 6, false]}],[{'color': []}, {'background': []}],          // dropdown with defaults from theme[{'font': ['宋体']}],[{'align': []}],['image'],['clean']                                         // remove formatting button];editor = new Quill('#editor', {modules: {toolbar: {container: toolbarOptions,handlers: {image: imageHandler}}},theme: 'snow',});editor.root.addEventListener("paste", (e) => {console.log(e)console.log(this)const clipboardData = e.clipboardData// support cut by software & copy image file directlyconst isImage = clipboardData.types.length && clipboardData.types.join('').includes('Files');if (!isImage) {return;}// only support single image pasteconst file = clipboardData.files[0];if (!file || !file.name || !(file.name.toLowerCase().indexOf(".png") !== -1 || file.name.toLowerCase().indexOf(".gif") !== -1|| file.name.toLowerCase().indexOf(".jpg") !== -1 || file.name.toLowerCase().indexOf(".jpeg") !== -1)) {console.log('粘贴的不是图片')return;}console.log(file)var formData = new FormData;formData.append('file', file)// 在此执行上传$.ajax({data: formData,processData: false,//不做处理contentType: false,//不做处理sync: false,url: '/file/up/img',type: 'post',success(data) {console.log(data)if (data.code == 0) {const range = editor.getSelection(true);editor.insertEmbed(range.index, 'image', data.data);} else {layer.msg(data.msg)}}})})editor.clipboard.addMatcher('IMG', (node, delta) => {const Delta = Quill.import('delta')return new Delta().insert('')})});</script>

quill富文本编辑器quill粘贴图片上传服务器相关推荐

  1. 富文本编辑器quill-editor自定义图片上传

    目录 1.页面引入 2.自定义imge处理的图片上传组件 3.图片上传成功后回显嵌入 4.最终呈现效果 5.源码 之前我整理过一篇文章,Quill编辑器实现图片上传功能(戳链接可查看) 但是想来那个是 ...

  2. Simditor 富文本编辑器多选图片上传、视频连接插入

    simditor 是一个基于浏览器的所见即所得的文本编辑器.Simditor 富文本编辑器, 支持多选图片上传, 视频连接插入, HTML代码编辑以及常用富文本按钮,支持的浏览器:IE10.Firef ...

  3. themyleaf 图片上传_springboot thymeleaf 整合 百度富文本编辑器UEditor进行图片上传

    项目中需要使用到富文本编辑器,找来找去发现百度UEditor富文本编辑器在国内最为常用因此就尝试引入.编辑器官网是:http://ueditor.baidu.com/website/index.htm ...

  4. vue中使用wangeditor富文本编辑器(含图片上传和回显)

    最近在写vue的项目中,遇到一个需求,点击编辑,显示弹框,在弹框中的富文本编辑器中编辑自定义文本样式,可以上传图片并回显.编辑完成确定后显示在页面上. 首先先写一个editor.vue的页面.(建议单 ...

  5. Spring Boot集成Ueditor富文本编辑器,实现图片上传,视频上传,返回内容功能并且通过OSS转换为链接并且解决Spring Security静态资源访问以及跨域问题

    学习自https://cloud.tencent.com/developer/article/1452451 现在是晚上22点,刚刚和我们的前端交流完了富文本编辑器的一些意见和看法 还是老样子 需求 ...

  6. 如何部署JSP版本的百度富文本编辑器(带图片上传功能)

    博主之前因为公司项目需要部署百度的富文本编辑器到项目中,由于之前一直是后端开发,所以部署上还是费了一番心思的,网上也有很多教程但是用起来总会有各种问题,今天在这里记录一下以备今后的不时之需,也希望帮助 ...

  7. 百度富文本编辑器,改变图片上传存储路径

    我用的是最新版! 找到以下2个关键文件: YourPath.../Ueditor/php/config.json YourPath.../Ueditor/php/Uploader.class.php ...

  8. quill富文本编辑器——修改默认图片、视频上传功能

    quill富文本编辑器默认的图片上传是将图片地址转换为base64格式,可能会导致字段过长:默认的视频上传是插入iframe标签,与需要的video标签不符合 图片上传 初始化编辑器时重写image上 ...

  9. summernote富文本编辑器的自定义附件上传:不限于图片类型

    summernote富文本编辑器的自定义附件上传 前言 一.自定义上传附件按钮和弹窗 二.结合PHP上传文件进行后端处理 三.用jq模拟点击添加链接方式去处理上传附件 前言 summernote的上传 ...

最新文章

  1. 问题征集 | 跟计算机史学家对谈是一种怎样的感受
  2. 20211222 AB和BA具有相同的非零特征值;如果A和B均方,且AB=I,那么BA=I,A、B均可逆
  3. OpenCV reshape函数需要注意的细节
  4. java的三大特性,封装,继承,多态
  5. maven系列一:pom.xml文件详解
  6. 打印水仙花数oracle,javaScript实现回文数、水仙花数判断和输出斐波那契数列
  7. mysql配置命令_MySQL基本配置命令总结
  8. C# 数组比较--取得两个集合的交集,差集,并集的方法
  9. java 常用富文本编辑器_常用的六个富文本编辑器
  10. vscode下载提速方法
  11. DSP2812和28335的区别
  12. 解决其他浏览器能上网谷歌浏览器不能上网
  13. 工商银行发消息说5星级服务器,工商银行5星级客户多吗?会刷星你也可以..
  14. 连续英文字符串分词工具wordninja添加自定义名词
  15. 利用sqlmap注入获取网址管理员账号密码
  16. memcpy 内存越界分析
  17. 获取网站的浏览器上的icon图标
  18. 自然场景文本检测识别技术综述
  19. 利用Word解锁注册表
  20. C#:实现计算a的b次方(附完整源码)

热门文章

  1. 怀着对未来美好的憧憬和对C++的无限的崇拜
  2. 服务器动态口令管理系统,动态口令认证服务器
  3. 一个月薪3W,但有点失败的北京程序员的真实生活!!!
  4. 《放开手》 - 尹航
  5. 将GPS获得的UTC时间转换成本地时间的方法
  6. Android:长度单位详解(px、dp、sp)
  7. 炼丹术的终结——神经网络结构搜索之一
  8. 高等数学 多元函数微分学 知识技巧思维导图 [21考研上岸之旅]
  9. 前端面试大全(JavaScript篇——面试利器值得拥有!)
  10. java字符串比大小_Java字符串比较(3种方法)