首页 > 其他分享 >ckeditor粘贴word图片且图片自动上传代码

ckeditor粘贴word图片且图片自动上传代码

时间:2023-07-13 15:45:12浏览次数:39  
标签:控件 word ckeditor text base64 items var 图片

图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码
目前限chrome浏览器使用
首先以um-editor的二进制流保存为例:
打开umeditor.js,找到UM.plugins['autoupload'],然后找到autoUploadHandler方法,注释掉其中的代码。
加入下面的代码:

//判断剪贴板的内容是否包含文本

//首先解释一下为什么要判断文本是不是为空

//在ctrl+c word中的文字或者图片之后会返回1种(image/png)或者4种type(text/plain,text/html,text/rtf,image/png)类型的对象

//为了兼容4种格式的情况,做了如下的判断

//如下代码:e.originalEvent.clipboardData.items获得剪贴板的内容

//当粘贴了文本之后text是不为空的,同时也会返回当前文本的图片类型

//如果有文字的话不做任何的处理,如果只粘贴图片的话文本一定是空的,包括复制的桌面图片或者截图的图片

var text = e.originalEvent.clipboardData.getData("text");

if(text == ""){

    var items=e.originalEvent.clipboardData.items;

     for (var i = 0, len = items.length; i < len; i++) {

        var item = items[i];

       if ( item.kind == 'file' && item.type.indexOf('image/') !== -1 ) {

         

              var blob = item.getAsFile();

              getBase64(blob, function( base64 ) {

              //sendAndInsertImage(base64,me); 上传到服务器

               setBase64Image(base64,me);

              });

              //阻止默认事件, 避免重复添加;

              e.originalEvent.preventDefault();

             };

        }

}

两个方法:

//执行插入图片的操作

function setBase64Image(base64,editor){

    editor.execCommand('insertimage', {src: base64,_src: base64});

}

//获得base64

function  getBase64(blob, callback) {

    var a = new FileReader();

    a.onload = function(e) {callback(e.target.result);};

    a.readAsDataURL(blob);

};

效果展示:

​编辑

​编辑

​编辑

 

视频教程:

 

动易SiteFactory 4.7整合,动易SiteFactory 6.2整合,dedecms 5.7-ueditor整合,dedecms 5.7-ckeditor3x整合,帝国CMS-ueditor整合,帝国CMS-ckeditor4x整合,dokuwiki整合,Windows控件安装,macOS控件安装,linux-deb控件安装,linux-rpm控件安装,uos控件安装,linux-银河麒麟控件安装,

 

更多详细资料可以参考这篇文章:

详细思路及源码

示例下载:

wordpaster-vue3-cli-ueditor1.5wordpaster-vue-ueditor1.5wordpaster-asp.net-ueditor1.5xwordpaster-php-ueditor1xwordpaster-jsp-ueditor1x​

 

标签:控件,word,ckeditor,text,base64,items,var,图片
From: https://www.cnblogs.com/songsu/p/17551076.html

相关文章

  • vue图片上传组件
    <template><div@dragover.prevent@dragenter.prevent="drag=true"@dragleave.prevent="drag=false"@drop.prevent="onDrop"@click="input.click"v-show="status==='uploa......
  • Android Glide加载小gif和图片比较模糊
    其实Glide加载还是可以将小图片加载的非常清晰的,可以通过Glide转换为Bitmap利用Drawable将setFilterBitmap为true但是这玩意解决不了GIF。在没有找到库的情况下:我直接自定义view通过pl.droidsonroids.gif:android-gif-drawable获取时间间隔并将gif解析成bitmap获取像素再通......
  • 爬取 2 万多张 Flickr 图片,莫纳什大学复现 10 年间日本樱花开放的时空特征
    内容一览:近年来,全球气候变化形势严峻,由此引发的蝴蝶效应,正深刻地影响着人类和大自然。在这一背景下,收集数百甚至数千公里范围内开花模式的数据,了解气候变化如何对开花植物产生影响,成为近年来生态研究的重要课题之一。但传统的方法通常需要耗费大量经费,且需要较长的时间进行采样调查......
  • ckeditor粘贴word图片自动上传组件
    ​ 如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>......
  • ckeditor粘贴word图片自动上传插件
    ​  自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了。一般情况下我们将Word内容粘贴到Web编辑器(富文本编辑器)中时,编辑器都无法自动上传图片。需要用户手动一张张上传Word图片。如果只有一张图片还能......
  • 【Python&RS】基于GDAL给无人机图片定义坐标系
    ​    前段时间有过一个想法,就是如果可以给无人机拍摄的图片定义坐标系,再使用GADL库里的镶嵌拼接函数,是不是就可以实现快速拼接影像。虽然结果不是正射影像,但效率比无人机厂家的软件提高了很多很多,主要还是看用途。    有了这个想法后就要行动起来,定义一个坐标......
  • vue3 图片懒加载
    使用vue第三方库useIntersectionObserver创建文件directives/index.js导入第三方库import{useIntersectionObserver}from'@vueuse/core'exportconstlazyPlugin={install(app){app.directive('img-lazy',{mounted(el,binding){......
  • Strong Password(贪心思想)
    StrongPasswordtimelimitpertest2secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputMonocarpfinallygotthecouragetoregisteronForceCoders.Hecameupwithahandlebutisstillthinkingaboutthepassw......
  • 封装图片处理工具类,实现图片的裁剪、压缩、图片水印、文字水印、多行文字水印等功能
    目录一、前言二、工具类的依赖和简单介绍1、添加依赖2、简单的使用3、加载需要处理的图片4、添加图片处理规则4.1Builder的方式4.2使用规则工厂的方式5、输出处理后的图片三、使用方式1、图片裁剪图片裁剪规则实体类1.1按长宽裁剪1.1.1示例代码1.1.2实现效果1.2按比例裁剪1......
  • 转载:PageOffice既保存Word文件中指定区域的数据又保存整篇文件
    一、首先在word文件中给需要在后台获取数据的区域设置以PO_开头的书签。二、通过pageoffice在线打开文件并编辑保存。有两种打开文件的模式1、普通编辑模式(docNormalEdit)普通编辑模式就是简单的打开文件,分别设置SaveDataPage保存数据的方法和SaveFilePage保存文件的方法即可......