惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
L
LINUX DO - 最新话题
G
GRAHAM CLULEY
Know Your Adversary
Know Your Adversary
S
Schneier on Security
C
Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
P
Privacy & Cybersecurity Law Blog
S
Security Archives - TechRepublic
Scott Helme
Scott Helme
PCI Perspectives
PCI Perspectives
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Attack and Defense Labs
Attack and Defense Labs
Hacker News: Ask HN
Hacker News: Ask HN
S
Security @ Cisco Blogs
S
Secure Thoughts
C
CERT Recently Published Vulnerability Notes
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
Cybersecurity and Infrastructure Security Agency CISA
The Last Watchdog
The Last Watchdog
T
Tenable Blog
SecWiki News
SecWiki News
T
The Exploit Database - CXSecurity.com
Google Online Security Blog
Google Online Security Blog
N
News and Events Feed by Topic
E
Exploit-DB.com RSS Feed
H
Heimdal Security Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
L
LINUX DO - 热门话题
The Hacker News
The Hacker News
P
Privacy International News Feed
Project Zero
Project Zero
Engineering at Meta
Engineering at Meta
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
博客园 - 叶小钗
Cloudbric
Cloudbric
小众软件
小众软件
月光博客
月光博客
S
Securelist
V
V2EX - 技术
I
Intezer
M
MIT News - Artificial intelligence
aimingoo的专栏
aimingoo的专栏
S
Security Affairs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
雷峰网
雷峰网
C
CXSECURITY Database RSS Feed - CXSecurity.com
F
Full Disclosure
A
About on SuperTechFans

博客园 - Xproer-松鼠

PHP实现视频文件上传完整实例 ueditor 富文本编辑器粘贴图片时让图片居中 TinyMCE富文本编辑器粘贴图片自动上传问题解决 vue项目中使用tinymce富文本编辑器实现图片上传/粘贴格式 富文本编辑器复制word文档中的图片 富文本编辑器:自己实现图片上传功能和图片粘贴上传(kindeditor) 前端上传文件或者上传文件夹 前端实现文件上传(点击+拖拽) HTML5应用之文件拖拽上传 使用HTML5实现多文件上传 HTML5 文件上传的2种方式 html5实现文件批量上传组件 HTML5文件上传操作 html5中怎么实现多文件上传功能 HTML5 进阶系列:文件上传下载 html实现上传 大文件分片上传 【前后台完整版】大文件分片上传 大文件、视频分片上传,断点续传
UEditor富文本编辑器图片粘贴和上传问题
Xproer-松鼠 · 2023-12-27 · via 博客园 - Xproer-松鼠

项目引入的是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/

欢迎入群一起讨论