由于工作需要必须将word文档内容粘贴到编辑器中使用

但发现word中的图片粘贴后变成了file:///xxxx.jpg这种内容,如果上传到服务器后其他人也访问不了,网上找了很多编辑器发现没有一个能直接解决这个问题

考虑到自己除了工作其他时间基本上不使用windows,因此打算使用nodejs来解决这一问题

发现不管什么编辑器只要将图片转换成base64后就可以直接使用(IE8及一下可能不支持),由于编辑器中添加word文档功能也只是自己用,因此可以忽略这种浏览器了

找了很久,试用了很多编辑器,发现只有ckeditor的功能还算符合我的需求(支持自定义HTML属性)

然后我写了一个监听粘贴事件的操作,用来获取粘贴之后的file:///xxxx.jpg这种路径

<script>

var service = {

http        : require('http'),

url         : require('url'),

querystring : require('querystring'),

fs          : require('fs'),

config      : {

timeout : 60000,

charset : 'utf8',

port    : 10101,

host    : '127.0.0.1'

},

router : {

index : function(res, query){

res.end('Server is running!');

},

check : function(res, query){

var result = {status: 1, info: 'success'};

result = JSON.stringify(result);

if(typeof query.callback == 'string'){

result = query.callback + '(' + result + ')';

}

res.end(result);

},

word : function(res, query){

var _this = service;

var result = {status: 0, info: 'error'};

if(typeof query.file == 'string'){

var img = query.file.match(/file:\/\/+(localhost)?(\S+\.(png|jpg|jpeg|gif|bmp))/i);

console.log(img);

if(img){

var base64 = _this.base64_encode(img[2]);

result.status = 1;

result.info = 'data:image/' + img[3] + ';base64,' + base64;

}

}

result = JSON.stringify(result);

if(typeof query.callback == 'string'){

result = query.callback + '(' + result + ')';

}

res.end(result);

}

},

start : function(){

var _this  = this;

var Server = _this.http.createServer(function (req, res) {

var URL = _this.url.parse(req.url);

var receive = [];

var router = null;

switch(URL.pathname){

case '/word':

router = _this.router.word;

break;

case '/check':

router = _this.router.check;

break;

default:

router = _this.router.index;

}

req.setEncoding(_this.config.charset);

req.addListener('data', function(data) {

receive.push(data);

});

res.writeHead(200, {'Content-Type': 'text/plain'});

res.on("close",function(){

console.log("res closed");

});

req.on("close",function(){

console.log("req closed");

});

req.addListener('end', function() {

router(res, _this.querystring.parse(URL.query));

});

});

Server.listen(_this.config.port, _this.config.host, 1024);

Server.setTimeout(_this.config.timeout, function(cli){

cli.end('timeout\n');

});

console.log('Server running at http://' + _this.config.host + ':' + _this.config.port);

},

//base64

base64_encode : function(file){

var bitmap = this.fs.readFileSync(file);

return new Buffer(bitmap).toString('base64');

}

};

service.start();

</script>

将以上代码保存为一个word.js文件

然后执行 node word.js就会自动创建一个http服务了

这个时候我们在编辑器中使用jsonp获取到处理完的图片数据替换原来的file:///xxxxxx.jpg路径就搞定了

处理word图片批量上传的代码

其它的业务逻辑参数代码

当然也可以将以上代码打包成一个本地执行文件去给不懂电脑的人使用就行了(具体方法我这里就不说了)

前台引用的代码

下面是实现后的效果,能够自动上传Word中的所有图片,并且有进度条显示

所有图片都能够保存在服务器中,而且支持分布式图片存储

编辑器中的图片地址已经全部替换成了服务器的图片地址,其它的用户也能够正常访问

效果展示:

视频教程:

KindEditor4-编辑器一键粘贴Word

动易SiteFactory 4.7整合,动易SiteFactory 5.6整合,动易SiteFactory 6.2整合,PbootCMS整合,PHPCMS v9整合,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.5,wordpaster-vue-ueditor1.5,wordpaster-asp.net-ueditor1.5x,wordpaster-php-ueditor1x,wordpaster-jsp-ueditor1x​

支持复制粘贴word图片的KindEditor编辑器相关推荐

  1. umeditor+粘贴word图片

    图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码 目前限chrome浏览器使用,但是项目要求需要支持所有的浏览器,包括Windows和macOS系统.没有办 ...

  2. 同时绑定onpropertychange 和 oninput 事件,实时检测 input、textarea输入改变事件,支持低版本IE,支持复制粘贴...

    实时检测 input.textarea输入改变事件,支持低版本IE,支持复制粘贴 检测input.textarea输入改变事件有以下几种: 1.onkeyup/onkeydown 捕获用户键盘输入事件 ...

  3. 粘贴板工具:PPT或Excel复制粘贴成图片问题的解决方案

    粘贴板工具:PPT或Excel复制粘贴成图片问题的终极解决方案 一.小工具介绍 针对PPT或Excel复制粘贴成图片问题,Clipboard是一个将图像粘贴板内容转化为文字粘贴板内容的小工具.下载链接 ...

  4. kindeditor+粘贴word图片

    公司做的项目需要用到粘贴Word功能.就是将word内容一键粘贴到网页编辑器(在线富文本编辑器)中.Chrome+IE默认支持粘贴剪切板中的图片,但是我要粘贴的文章存在word里面,图片多达数十张,我 ...

  5. 现在的编辑器不能复制粘贴word中的文本

    由于工作需要必须将word文档内容粘贴到编辑器中使用 但发现word中的图片粘贴后变成了file:///xxxx.jpg这种内容,如果上传到服务器后其他人也访问不了,网上找了很多编辑器发现没有一个能直 ...

  6. wangEditor粘贴word图片问题解决

    1.4.2之后官方并没有做功能的改动,1.4.2在word复制这块没有bug,其他版本会出现手动无法转存的情况 本文使用的后台是Java.前端为Jsp(前端都一样,后台如果语言不通得自己做 Base6 ...

  7. ueditor粘贴word图片无法显示的问题

    1.4.2之后官方并没有做功能的改动,1.4.2在word复制这块没有bug,其他版本会出现手动无法转存的情况 本文使用的后台是Java.前端为Jsp(前端都一样,后台如果语言不通得自己做 Base6 ...

  8. CKEditor 4.14 发布,支持复制粘贴 LibreOffice 文档

    CKEditor 4.14 稳定版已发布,更新内容包括添加新功能.修复错误以及改进 API. 其中最值得关注的是,此版本支持将从 LibreOffice 复制的内容直接粘贴到 CKEditor 编辑器 ...

  9. ckeditor复制粘贴word

    由于工作需要必须将word文档内容粘贴到编辑器中使用 但发现word中的图片粘贴后变成了file:///xxxx.jpg这种内容,如果上传到服务器后其他人也访问不了,网上找了很多编辑器发现没有一个能直 ...

最新文章

  1. 智源青年科学家代季峰:用“数据+知识”解决图像理解的四大挑战
  2. Android中开发需要的高效助推的命令总结
  3. 数据库基础操作(二)数据库表数据的增删查改
  4. 浏览器与服务器通信技术——Ajax详解
  5. oracle点勾算提交吗,oracle表结构和数据导出时的一些勾选项说明
  6. win7 绿色版MySQL安装与配置
  7. MVVM  MVVM是Model-View-ViewModel的简写
  8. python项目开发实例-《Python项目案例开发从入门到实战》PDF版百度网盘
  9. sqlserver的坑
  10. java cucumber_Cucumber框架入门篇
  11. Awesomium源码及编译
  12. 泰坦尼克号数据下载链接
  13. 科技T3国产平台!成功搭载“翼辉国产实时系统SylixOS”
  14. RFID ACR-122U M1射频卡破解分析
  15. matlab量化股票基本面,获取数据 - MATLAB - 掘金量化
  16. 曲苑杂坛--服务启动时执行
  17. pymilvus基操
  18. matlab散点图折线图_什么是散点图以及何时使用
  19. Netty案例(二)之耗时任务的处理
  20. javaScript内存溢出vue-cli3解决方案

热门文章

  1. 花滑三周连跳_阿克塞尔三周PK四周跳 花滑女单正式进入新纪元
  2. 四万字32图,Kafka知识体系保姆级教程宝典
  3. STM32之温湿度DHT11驱动
  4. python3继承supper_python3中supper和继承顺序
  5. 读取太阳紫外辐照谱数据
  6. Flutter 从 TextField 安全泄漏问题深入探索文本输入流程
  7. const 定义数组问题
  8. php主要技术指标,液晶显示器的主要技术指标不包括什么
  9. 数据治理体系化思考与实践
  10. 路由方案之ARouter源码分析