paste.upload.img.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. function initPasteDragImg(Editor){
  2. var doc = document.getElementById(Editor.id)
  3. doc.addEventListener('paste', function (event) {
  4. var items = (event.clipboardData || window.clipboardData).items;
  5. var file = null;
  6. if (items && items.length) {
  7. // 搜索剪切板items
  8. for (var i = 0; i < items.length; i++) {
  9. if (items[i].type.indexOf('image') !== -1) {
  10. file = items[i].getAsFile();
  11. break;
  12. }
  13. }
  14. } else {
  15. console.log("当前浏览器不支持");
  16. return;
  17. }
  18. if (!file) {
  19. console.log("粘贴内容非图片");
  20. return;
  21. }
  22. uploadImg(file,Editor);
  23. });
  24. var dashboard = document.getElementById(Editor.id)
  25. dashboard.addEventListener("dragover", function (e) {
  26. e.preventDefault()
  27. e.stopPropagation()
  28. })
  29. dashboard.addEventListener("dragenter", function (e) {
  30. e.preventDefault()
  31. e.stopPropagation()
  32. })
  33. dashboard.addEventListener("drop", function (e) {
  34. e.preventDefault()
  35. e.stopPropagation()
  36. var files = this.files || e.dataTransfer.files;
  37. uploadImg(files[0],Editor);
  38. })
  39. }
  40. function uploadImg(file,Editor){
  41. var formData = new FormData();
  42. var fileName=new Date().getTime()+"."+file.name.split(".").pop();
  43. formData.append('editormd-image-file', file, fileName);
  44. $.ajax({
  45. url: Editor.settings.imageUploadURL,
  46. type: 'post',
  47. data: formData,
  48. processData: false,
  49. contentType: false,
  50. dataType: 'json',
  51. success: function (msg) {
  52. var success=msg['success'];
  53. if(success==1){
  54. var url=msg["url"];
  55. if(/\.(png|jpg|jpeg|gif|bmp|ico)$/.test(url)){
  56. Editor.insertValue("![图片alt]("+msg["url"]+" ''图片title'')");
  57. }else{
  58. Editor.insertValue("[下载附件]("+msg["url"]+")");
  59. }
  60. }else{
  61. console.log(msg);
  62. alert("上传失败");
  63. }
  64. }
  65. });
  66. }