KindEditor上传图片word

article/2025/9/24 11:14:18

由于工作需要必须将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中的所有图片,并且有进度条显示

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

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

详细内容可以参考这篇文章:ckeditor粘贴word – 泽优软件博客

讨论群:223813913


http://chatgpt.dhexx.cn/article/mPKgTnUO.shtml

相关文章

使用KindEditor实现图片上传、提交文字数据

KindEditor 是一套开源的 HTML 可视化编辑器&#xff0c;主要用于让用户在网站上获得所见即 所得编辑效果&#xff0c;兼容 IE、Firefox、Chrome、Safari、Opera 等主流浏览器。 KindEditor 使用 JavaScript 编写&#xff0c;可以无缝的于 Java、.NET、PHP、ASP 等程序接合。…

kindeditor 上传图片后端成功了,web显示上传失败 ,已解决

别人是什么都懂&#xff0c;然后写上代码教大家怎么做&#xff0c;而我只是一个被自己蠢哭的啥都不会的yang 今天我就来告诉大家&#xff0c;被自己蠢哭是啥意思 springboot实现图片上传&#xff0c;我以前不知道原来是有kindeditor这个html在线编辑器 大概长这样&#xff0c…

springboot中kindeditor 上传图片及其富文本的使用

话不多少&#xff0c;直接进入话题。 首先需要在前端页面中引入kindeditor 库 <script src"../js/kindeditor-all.js"></script>标注黄色的是重点&#xff0c;必须引入 其次写前端代码,注意我这个前端代码是springboot推荐的themleaf写的&#xff0c;其…

kindEditor的上传图片点击没反应,bug修复

基于layui的bug的层级问题 修改kindeditor.js中的811213全部替换为19892000 811212替换为19891999 811214替换为19892001 811211替换为19891998 基于电脑的显示问题x&#xff0c;y的坐标没有取整&#xff0c;有小数点不识别的问题 修改kindeditor.js中x&#xff0c;y的取整&am…

kindeditor 上传图片失败问题总结

1.近段时间一直在处理kindeditor上传图片失败的问题&#xff0c;前期一直以为是前端的问题&#xff0c;利用谷歌控制台&#xff0c;打断点&#xff0c;修改方法&#xff0c;一直都找不到解决方案&#xff0c;直到查看服务器配置&#xff0c;才发现&#xff1a; WEB 1号服务器 /…

KindEditor上传图片和修改图片

1.首先就是下载KindEditor&#xff08;这里是官网的地址&#xff09; 2. 部署编辑器 解压 kindeditor-x.x.x.zip 文件&#xff0c;将所有文件上传到您的网站程序目录里&#xff0c;例如&#xff1a;http://您的域名/editor/ Note 您可以根据需求删除以下目录后上传到服务器。…

kindeditor php 上传错误,kindeditor 上传图片失败,该怎么解决

本帖最后由 nxgg8 于 2014-05-29 12:44:04 编辑 编辑器版本&#xff1a;KindEditor 4.1.10 php框架&#xff1a;ThinkPHP3.2.2 这是html页面中引用编辑器配置 上传图片的时候出问题,不管是单张图片&#xff0c;还是批量。都会提示以下信息&#xff0c;返回的图片路径是正确的&a…

Kindeditor的简单使用以及图片上传

详细的笔者也不是特别懂&#xff0c;但是基本的使用还是会的 首先到官网下载相应的插件http://kindeditor.net/down.php&#xff0c;下载完的文件打开后是这样的&#xff0c;看着有点多 但是我们只取出需要的&#xff0c;只有这么一点&#xff0c;复制到项目下&#xff0c;取名…

KindEditor上传图片及使用

本文为原创&#xff0c;只为互相学习&#xff01; 主页:写程序的小王叔叔的博客欢迎来访&#x1f440; 支持:点赞收藏关注 社区:JAVA全栈进阶学习社区欢迎加入​​​​​​​ 编辑器使用 1&#xff09;官网&#xff1a;在线HTML编辑器 2&#xff09;使用 如果在编辑器中&#…

KindEditor上传本地图片

自己动手配置了一下KindEditor文本编辑器上传本地图片的功能&#xff0c;不需要动手写action&#xff0c;相关详细配置和代码如下。 我用的是KindEditor 4.1.10的版本&#xff0c;需要用到的童鞋去下载对应的版本。 1.↓↓↓这个插件里面需要手动配置的两个重要的jsp文件。 …

kindeditor4.1.10图片上传配置及使用说明

1效果展示 1.1 点击图片上传按钮 1.2 弹出选择框,可以从已上传的图片中选择上传,也可以从本地上传。 1.3选择从图片空间上传,文件夹模式浏览所有已上传的图片 1.4从本地选择图片上传 1.5上传效果 1.6 上传路径: WebRoot/upload/image 2-1:kindeditor-4.1.10版本插件 2-2:…

onpaste事件的浅谈

今天看书的时候&#xff0c;偶然看到onpaste的这个属性所以记录下来&#xff0c;为以后查阅而用&#xff1a; 具体的用法是<input type“text” οnpaste"function ***"/>&#xff0c;标签只是用来做说明并不是非得是input标签 虽然是触发的条件是&#xff1…

手机html粘贴事件,详解浏览器中的粘贴事件 paste onpaste 事件

在最新的H5 API里已经有了对粘贴事件的支持, 事件名为paste, 平时用的较少,但最近想做一个粘贴板管理器,于是就调研了一下这个粘贴,复制事件. 那么调研的第一步是什么那? 当然是百度了,但高手都不百度,直接控制台调试 创建一个id为editor的文本域, 为其添加一个paste事件的…

onkeyup事件,onpaste事件,完成实时表单验证

先上效果图&#xff1a; input框&#xff0c;用户输入值的方式就两种&#xff0c;一种是键盘输入&#xff0c;一种是鼠标粘贴。onkeyup事件可以在键盘输入的时候绑定事件&#xff0c;onpaste"return false"&#xff0c;设置不允许粘贴。 onkeyup进行表单验证的优…

利用JavaScript从剪贴板获取图片并上传服务器

1、参考&#xff1a; 使用 JavaScript File API 实现文件上传FileReader.readAsDataURL()基于Servlet3的文件上传中的示例2&#xff1a;基于JQuery的单文件上传 2、onpaste 剪贴板事件 onpaste 事件在用户向元素中粘贴文本时触发。有三种方式可以在元素中粘贴内容&#xff1…

Internet协议的安全性

网际层 安全问题 1.IP数据报在传递过程中被窃取 措施&#xff1a;读ip数据报进行加密 2.数据净荷可能被截取后修改 措施&#xff1a;对ip数据净荷进行完整性检测 3. 攻击者发送伪造源地址数据包欺骗接收者&#xff0c;也称为ip欺骗 措施&#xff1a;对数据包的源地址鉴别 4. A…

winget InternetOpenUrl() failed. 0x80072f7d

今天使用 winget 安装东西的时候提示&#xff1a; 尝试更新源时失败&#xff1a; winget 执行此命令时发生意外错误&#xff1a; InternetOpenUrl() failed. 0x80072f7d : unknown error对于我而言是因为其他原因关闭了 tls 1.2&#xff0c;在控制面板->网络和 Internet-&g…

Internet网际协议 --- IP地址

IP地址 一.IP地址简介二.分类IP地址三.IP子网划分与子网掩码四.无类域间路由CIDR五.路由聚合六.IP包转发 一.IP地址简介 1.IP地址&#xff0c;网络上的每一台主机&#xff08;或路由器&#xff09;的每一个接口都会分配一个全球唯一的32位的标识符。 2.将IP地址划分为固定的类…

HTTP-web-Internet

互联网&#xff08;Internet&#xff09; 互联网&#xff1a;将全球计算机互联在一起的网络。目前最流行的实现协议是TCP/IP。 万维网&#xff08;WWW&#xff09; 万维网&#xff1a;基于HTTP协议实现全球性、动态交互、跨平台的分布式图形信息系统。是互联网上应用最为广泛的…

internet协议

1&#xff1a;引言 IP时TCP/IP中的核心协议IP提供了一种尽力而为&#xff0c;无连接的数据报交付服务 2&#xff1a;IP头部 正常的IPV4头部大小为20字节。除非存在选项&#xff08;少见&#xff09;IPV6的长度是40字节&#xff0c;没有选项字段&#xff0c;IPV6有扩展头部 …