editor.md作为一款Markdown编辑器,界面美观,功能强大

但是图片,文件上传方面缺少了剪切,拖拽上传,有那么一点每中不足,下面就简单实现一个,废话不多说,直接上代码。

uploadImg.js

function initPasteDragImg(Editor){var doc = document.getElementById(Editor.id)doc.addEventListener('paste', function (event) {var items = (event.clipboardData || window.clipboardData).items;var file = null;if (items && items.length) {// 搜索剪切板itemsfor (var i = 0; i < items.length; i++) {if (items[i].type.indexOf('image') !== -1) {file = items[i].getAsFile();break;}}} else {console.log("当前浏览器不支持");return;}if (!file) {console.log("粘贴内容非图片");return;}uploadImg(file,Editor);});var dashboard = document.getElementById(Editor.id)dashboard.addEventListener("dragover", function (e) {e.preventDefault()e.stopPropagation()})dashboard.addEventListener("dragenter", function (e) {e.preventDefault()e.stopPropagation()})dashboard.addEventListener("drop", function (e) {e.preventDefault()e.stopPropagation()var files = this.files || e.dataTransfer.files;uploadImg(files[0],Editor);})
}
function uploadImg(file,Editor){var formData = new FormData();var fileName=new Date().getTime()+"."+file.name.split(".").pop();formData.append('editormd-image-file', file, fileName);$.ajax({url: Editor.settings.imageUploadURL,type: 'post',data: formData,processData: false,contentType: false,dataType: 'json',success: function (msg) {var success=msg['success'];if(success==1){var url=msg["url"];if(/\.(png|jpg|jpeg|gif|bmp|ico)$/.test(url)){Editor.insertValue("![图片alt]("+msg["url"]+" ''图片title'')");}else{Editor.insertValue("[下载附件]("+msg["url"]+")");}     }else{console.log(msg);alert("上传失败");}}});}

使用方法

1.页面引入uploadImg.js

<script src="uploadImg.js" type="text/javascript"></script>

2.editor.md配置开启图片上传功能,onload事件里面初始化插件

var testEditor = editormd("test-editormd", {width: "90%",height: 740,path : '../lib/',theme : "dark",previewTheme : "dark",editorTheme : "pastel-on-dark",codeFold : true,saveHTMLToTextarea : true,    // 保存 HTML 到 TextareasearchReplace : true,imageUpload : true, //必须imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp"],imageUploadURL : "./php/upload.php", //必须onload : function() {initPasteDragImg(this); //必须}
});

3.复制粘贴,拖拽文件也是可以的,上传服务添加支持的后缀就可以。

官方提供了php的上传代码./editor.md/blob/master/examples/php/upload.php

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FZvFRCf9-1571796064003)(/static/cimg/20191023/1571793890.png ‘‘图片title’’)]

这样就支持txt,pdf的拖拽,复制转帖上传功能了。

  1. GIthub : https://github.com/mifunc/editor.md.uploadImg 提供了php的demo,开箱即用

editor.md实现拖拽剪切复制粘贴上传图片,文件插件相关推荐

  1. editor.md 实现拖拽剪切复制粘贴上传图片,文件插件

    editor.md作为一款Markdown编辑器,界面美观,功能强大 但是图片,文件上传方面缺少了剪切,拖拽上传,有那么一点每中不足,下面就简单实现一个,废话不多说,直接上代码. 文章目录 1. 新增 ...

  2. ue编辑器拖拽上传图片_editor.md实现拖拽剪切复制粘贴上传图片,文件插件

    editor.md作为一款Markdown编辑器,界面美观,功能强大 但是图片,文件上传方面缺少了剪切,拖拽上传,有那么一点每中不足,下面就简单实现一个,废话不多说,直接上代码. uploadImg. ...

  3. kali安装vmtools不能拖拽(复制粘贴)文件解决方法

    命令行下 执行 apt-get install open-vm-tools-desktop fuse 以安装open-vm-tools 部分提示安装错误,找不到指定目录,附上解决方法: 需要添加更新源 ...

  4. ubuntu 设置文件拖拽,复制粘贴方法

    ubuntu 设置文件拖拽,复制粘贴方法 1.设置文件拖拽: 第一步: sudo apt-get autoremove open-vm-tools 第二步:sudo apt-get install o ...

  5. 复制链接到剪切板php,剪切复制粘贴

    # 剪切复制粘贴 在这个页面中: * [基础](#基础) * [复制选中的文本片段](#复制选中的文本片段) * [复制文件路径](#复制文件路径) * [复制行或符号的引用](#复制行或符号的引用) ...

  6. Mac OS开发—Xcode给Mac应用添加编辑快捷键(剪切 复制 粘贴 全选 删除 撤销 重做)功能

    前言 笔者做Windows开发的,无奈公司有Mac OS的项目需要维护,之前没有编辑菜单的功能,需要笔者加上这个功能,笔者只能硬着头皮上.还好会c++,Mac应用里面一般都会用object-c 也可以 ...

  7. delphi 复制到剪贴板_Delphi中的基本剪贴板操作(剪切/复制/粘贴)

    delphi 复制到剪贴板 The Windows Clipboard represents the container for any text or graphics that are cut, ...

  8. android 剪切板监听_安卓监听剪切复制粘贴事件实例

    本文的剪切复制粘贴事件只针对文本,URI 和 intent 不在讨论范围内. 实例代码实现了2个功能: 监听剪切复制粘贴事件: 获取剪切复制或粘贴的文本: 剪切复制 有2个方法监听剪切复制事件:剪切板 ...

  9. el-tiptap富文本框拖拽和复制的图片会跳过上传服务器解决方案

    最近在业务上遇到个问题,因为富文本框存在一个漏洞,正常使用菜单栏上面的上传图片,会先传到服务器上,再将服务器返回的地址传给后端接口,但是通过拖拽或者复制的图片,依旧是base64格式,查看官方文档也没 ...

最新文章

  1. oracle数据库日期时间参数大全(一)
  2. android edittext标签,TagEditText,类似微博标签的文本控件
  3. argz_create_sep函数
  4. uva1509(暴力dfs)
  5. 如何让自己的写的程序在阿里云一直运行
  6. python自动化操作应用程序错误_web自动化中踩过的低级错误坑(python+selenium)
  7. ★(在人生的过程中我的65047777
  8. mybatis 不生效 参数_Spring Boot(七):你不能不知道的Mybatis缓存机制
  9. VS+Qt应用开发-设置鼠标光标
  10. 钉钉小程序添加vant组件库
  11. php是什么货币符号,2019最新各国货币符号缩写、图案大全?货币符号怎么打?...
  12. 10个高质量PPT模板下载网站
  13. 图像特征提取(二)——HOG特征
  14. 2012 年国家集训队互测 Tree
  15. pandas计算相关系数
  16. VScode远程root权限调试
  17. 计算机课反思的作文600字,中考反思作文600字6篇
  18. UVALive Problem 7456 Least Crucial Node——Regionals 2015 :: Asia - Taipei
  19. 华为手机计算机如何表达平方,华为手机郑平方:荣耀成功源于共享质量体系
  20. “师创杯”山东理工大学第九届ACM程序设计竞赛 正式赛 I.皮卡丘的梦想2【树状数组】水题

热门文章

  1. C结构体之位域(位段)
  2. mysql 删除 修改密码_MySQL新建用户,授权,删除用户,修改密码
  3. PAT 乙级 1046. 划拳(15) Java版
  4. python环境安装opencv_服务器python环境和opencv安装方法
  5. Perl_获得字符串长度_length($var)
  6. 监控系统故障定位之事件关联分析的设计
  7. matlab练习程序(方框模糊)
  8. SQL 难点解决:直观分组
  9. python_day3
  10. (译)如何优化cocos2d程序的内存使用和程序大小:第一部分