CodeSnippet.Cn
代码片段
Csharp
架构设计
.NetCore
西班牙语
kubernetes
MySql
Redis
Algorithm
Ubuntu
Linux
Other
.NetMvc
VisualStudio
Git
pm
Python
WPF
java
Plug-In
分布式
CSS
微服务架构
JavaScript
DataStructure
Shared
editor.md实现拖拽剪切复制粘贴上传图片,文件插件
0
Plug-In
JavaScript
小笨蛋
发布于:2021年02月15日
更新于:2021年02月15日
161
#custom-toc-container
## editor.md 作为一款Markdown编辑器,界面美观,功能强大 > 但是图片,文件上传方面缺少了剪切,拖拽上传,有那么一点每中不足,下面就简单实现一个,废话不多说,直接上代码。 ### uploadImg.js ```javascript 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) { // 搜索剪切板items for (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 ```javascript ``` > 2.editor.md配置开启图片上传功能,onload事件里面初始化插件 ```javascript var testEditor = editormd("test-editormd", { width: "90%", height: 740, path : '../lib/', theme : "dark", previewTheme : "dark", editorTheme : "pastel-on-dark", codeFold : true, saveHTMLToTextarea : true, // 保存 HTML 到 Textarea searchReplace : 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 ![图片alt](/uploads/images/20210602/214957-c708f022f60647459d3c33e8624a4d1f.png ''图片title'') > 这样就支持txt,pdf的拖拽,复制转帖上传功能了。
这里⇓感觉得写点什么,要不显得有点空,但还没想好写什么...
返回顶部
About
京ICP备13038605号
© 代码片段 2024