首页 > 其他分享 >UEditor富文本编辑器图片粘贴和上传问题

UEditor富文本编辑器图片粘贴和上传问题

时间:2023-12-27 17:34:19浏览次数:30  
标签:UEditor 文本编辑 return ueditor item action getActionUrl php 粘贴

项目引入的是UEditor富文本编辑器,由于安全(把攻击脚本伪造成图片)和图片大小(base64格式的图片可能会太大)的原因,用户输入的图片都要先发送给后端,然后拿到后端的链接赋值给image标签的src属性。

这里有两种处理办法:
第一种:
在ueditor.config.js里面的window.UEDITOR_CONFIG(配置项主体)加上imageUrl参数,大概32行处:

 


重写ueditor.all.js 里面的getActionUrl方法,差不多在8776行

 

但是由于这里的代码太多了,不容易维护,所以我用第二种方法去处理:
重写getActionUrl方法,在src/extend里面,创建一个ueditor文件夹专门对UEditor编辑器的问题进行维护修改:

let {UE} = window
UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl
/**
* 根据action名称获取请求的路径
* @method getActionUrl
* @remind 假如没有设置serverUrl,会根据imageUrl设置默认的controller路径
* @param { String } action action名称
* @example
* ```javascript
* editor.getActionUrl('config'); //返回 "/ueditor/php/controller.php?action=config"
* editor.getActionUrl('image'); //返回 "/ueditor/php/controller.php?action=uplaodimage"
* editor.getActionUrl('scrawl'); //返回 "/ueditor/php/controller.php?action=uplaodscrawl"
* editor.getActionUrl('imageManager'); //返回 "/ueditor/php/controller.php?action=listimage"
* ```
*/
UE.Editor.prototype.getActionUrl = function _getActionUrl(action) {
if (action === 'uploadimage') {
return 'xxx' // 图片接口地址
}
// ...
return this._bkGetActionUrl(action)
}


这样写方便代码的维护,并且容易对后进行拓展。

这时候使用工具栏的上传图片功能就处理完了,但是粘贴的图片有时候不会触发上述方法,不知道大家有没有这种情况,真是纳闷,检查发现是有时候粘贴的图片是在clipboardData的第二位???,emmm,只能去修改getPasteImage方法了,大概在26589行。

function getPasteImage(e) {
var item = e.clipboardData && e.clipboardData.items
if (item) {
var reg = /^image\//
if (item.length === 1 && reg.test(item[0].type)) {
return item
} else if (item.length === 2 && reg.test(item[1].type)) {
// 有时候粘贴的图片会在第二位
return {
0: item[1],
length: 1
}
} else {
return null
}
} else {
return null
}
}

参考文章:http://blog.ncmem.com/wordpress/2023/12/27/ueditor%e5%af%8c%e6%96%87%e6%9c%ac%e7%bc%96%e8%be%91%e5%99%a8%e5%9b%be%e7%89%87%e7%b2%98%e8%b4%b4%e5%92%8c%e4%b8%8a%e4%bc%a0%e9%97%ae%e9%a2%98/

欢迎入群一起讨论

 

 

标签:UEditor,文本编辑,return,ueditor,item,action,getActionUrl,php,粘贴
From: https://www.cnblogs.com/songsu/p/17931026.html

相关文章

  • vue项目中使用tinymce富文本编辑器实现图片上传/粘贴格式
    前言最近因为公司项目的后台管理端需要实现编辑器功能,一方面满足编辑各类文章内容需求,另一方面要自己编辑一些课程相关的介绍,于是就花了一些时间对比体验现有的一些开源的编辑器。编辑器之间的简单比较UEditor:基本满足各种需求,依赖于jquery但是已经不再维护了,实现上传图片等需......
  • vim文本编辑
    vim/vi文本编辑:  vi/vim,一个基于控制台的文本编辑器gedit,一个基于GUI的文本编辑器其中,vim是vi的升级版,后续多使用vim命令 演示:1.打开文本编辑vimabc.txt如果目标文件存在,则打开编辑;如果不存在则会新建一个文件如果系统没有......
  • 富文本编辑器复制word文档中的图片
    文章有点长,感觉每次写文章都特别啰嗦,如果不想看过程的话直接跳到*动手实践那一步,那边有核心的方法~富文本编辑器复制word文档中的图片问题点:从word文档复制进来的内容的图片都是file:///协议,这时候如果我们的页面是http://或者https://协议的话,就不允许读取图片了。 ......
  • Linux系统下常用的文本编辑器有哪些?
    文本编辑器是Linux操作系统中非常重要的工具,大家都知道,Linux操作系统真正的魅力在于命令行,当我们使用命令行进行工作时,就需要一个趁手的文本编辑器。那么Linux系统下常用的文本编辑器有哪些?这五个你都用过吗?第一:VimEditorVim是一个类似于Vi的文本编辑器,不过在Vi的基......
  • 富文本编辑器:自己实现图片上传功能和图片粘贴上传(kindeditor)
     在需要编写并保存带有各种格式,图片的文章内容时,往往需要用到富文本编辑器,这次使用到的富文本编辑器是kindeditor,使用下来功能基本足够,在这里记录下在使用时自己添加的功能。 kindeditor自带有图片上传功能,由于几个原因我需要自己实现一下。(一)用的vue,自然是写一个<kindedit......
  • HTML对接PUSDN富文本编辑器 - 编辑文档
    <!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title>yuque编辑器</title> <linkrel="stylesheet"type="text/css" href="https://gw.alipayobjects.com/render/p/yuyan_npm/@......
  • web富文本编辑框(2022-12-16)
    之所以加个时间,是因为在找一款合适的富文本编辑器的时候,发现好的多次被转载的帖子中推荐的那些所谓的开源编辑器都已经是付费产品了。于是耗费了大量时间从google中找了一些开源编辑器,这里简单记一笔。由于找到了够用的之后就没继续找了。1、https://simditor.tower.im/......
  • word文档转html富文本,富文本编辑器 转成html5代码
    用我现在最常使用的php框架fastadmin举例子,当然thinkphp或者原生php也是同样的原理,大家理解思路就好了、 环境:fastadmin,summernote编辑器【summernote的居中功能在段落里,且不会吃掉section标签,加上导入word功能之后,简直完美~】 按照国际惯例先放效果图  github上的de......
  • 【纯代码复制粘贴即可使用】卡尔曼滤波的C++实现
    使用Eigen实现卡尔曼滤波。如果实现扩展卡尔曼滤波只需将H矩阵换成雅可比的求解。#ifndef_MYKALMAN_H#define_MYKALMAN_H#include<Eigen\Dense>classKalmanFilter{public:KalmanFilter(intstateSize,intmeasSize,intuSize);~KalmanFilter()=default;......
  • L1-6 剪切粘贴
    原题链接看代码,懂得都懂,不懂就真不懂#include<bits/stdc++.h>usingnamespacestd;stringstr,head,send;intN,M,K;intmain(){cin>>str;cin>>N;while(N--){cin>>M>>K>>head>>send;......