UEditor上传图片功能无法使用,提示:后端配置项没有正常加载,上传插件不能正常使用!

事情还得从元旦那回说起。话说2017年最后一天启用CDN内容分发服务后,网站也就更新了几篇文章而已,昨天按计划开更内容,写了一半准备插图的时候,就爆了。硬生生的不让我插入图片啊,俗话说字不如表,表不如图。一张图能解决很多文字才能表达清楚的意思,并且简单直白粗暴。

故障详情,UEditor报配置错误。

点击单图上传按钮,选择需要的图片以后,编辑器中就一直是一个loading的状态,文章中无法插入需要的图片了。尝试使用多图上传功能,点开后就出现了错误信息:后端配置项没有正常加载,上传插件不能正常使用!如图:

初步排查了下错误原因,我看了下本地程序,一起正常,前面是点击单图上传出现loading状态的,这个有两种可能图片上传了,拉取不到,二是图片没有成功上传。FTP看了下服务器上的文件,很显然,图片并没有被上传。

查找出错原因,尝试排除故障。

回想了下,之前发布文章的时候功能一直正常,最近更新系统也都没有牵扯到文章系统的改造,而UEditor是个集成环境,没有做二次开发,只在使用的时候自定义了一些配置,并且配置当时调试正常,最近也没有变更配置。

那么最大的可能就是在我启用CDN之后出现的故障了,原因前面也提到启用CDN以后一直没有更新带图的博文。在没有确定是否是CDN造成的准确判断之下,我尝试断开了CDN,直接解析了域名,待生效后登录后台,发现插图功能恢复,最终验证了猜测。

既然是CDN造成的,无非就是因为回源的问题。之前做过将博客的后台系统全部回源了,而UEditor只出现在后台上,并没有出现在前台。我就在想,也许是因为我把UEditor作为插件使用的,而我在静态资源路径配置方面,和后台视图路径并非一致。接下来我就把UEditor的路径在阿里云CDN里面回源了,刷新后CDN缓存后再次尝试添加图片依然无效(这之前把域名解析切回到了CDN上)。然后又接着将UEditor的配置文件ueditor.config.jsconfig.json等需要加载的做了文件回源。做完这一切之后,后台依然没有鸟我,还是报错。

阅读UEditor源码找到坑之所在。

联想到之前QQ互联的坑,加上编辑器其它功能都完好,唯独上传功能异常,果断判断问题应该出现在参数被过滤的原因上。

通过阅读UEditor的PHP版上传原代码,绕了个小弯,先去看了Uploader.class.php这个文件,这个上传类要先读取配置项目$config,果断将$config加到阿里云CDN的过滤参数中,再次尝试,依然没有解决。然后就去看了下ueditor.config.js文件,在顶部看到这样一句:服务器统一请求接口路径。serverUrl: URL + "php/controller.php"。如获至宝,迅速点开controller.php文件,看到$action = $_GET['action'];,并且下面通过switch来判断数据内容的,也就是说这个$action才是被统一调用各种参数的公共名称。所以最后将action写到CDN的过滤参数中(实则是过滤参数保留),问题解决。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

高可用集群基本概念与heartbeat文本配置接口

一、高可用集群基本概念: 什么是高可用集群: 所谓高可用集群,就是在出现故障时,可以把业务自动转移到其他主机上并让服务正常运行的集群构架 > 高...

3637
来自专栏前端开发

小程序的全栈开发新时代

小程序·云开发是微信团队和腾讯云团队共同研发的一套小程序基础能力,简言之就是:云能力将会成为小程序的基础能力。整套功能是基于腾讯云全新推出的云开发(Tencen...

1864
来自专栏java达人

Kafka漫游记

我是一条消息,从我被生产者发布到topic的时候,我就清楚自己的使命:被消费者获取消费。但我一直很纳闷,把我直接推送给消费者不就行了,为什么一定要先推送到类似队...

2577
来自专栏芋道源码1024

短链接原理分析

顾名思义,短链接即是长度较短的网址。通过短链接技术,我们可以将长度较长的链接压缩成较短的链接。并通过跳转的方式,将用户请求由短链接重定向到长链接上去。短链接主要...

1483
来自专栏happyJared

程序员神器,IntelliJ IDEA 2018.1 正式发布

3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再次让人眼前一亮:什么,还能这么玩?

951
来自专栏Spark学习技巧

Kafka源码系列之以kafka为例讲解分布式存储系统

Kafka源码系列,浪尖是以kafka 0.8.2.2为例给大家讲解。由于公众号阅读不适大量文字,所以浪尖会尽量精简文字。目标是大家读完kafka源码系列能彻底...

3365
来自专栏有趣的Python

12- vue django restful framework 打造生鲜超市 -商品详情页,商品收藏

只需要在继承的里面添加这个mixins.RetrieveModelMixin就可以了。

1924
来自专栏Jaycekon

Python-WXPY实现微信监控报警

概述:   本文主要分享一下博主在学习wxpy 的过程中开发的一个小程序。博主在最近有一个监控报警的需求需要完成,然后刚好在学习wxpy 这个东西,因此很巧妙的...

2.2K8
来自专栏Web 开发

PushPlugin-为iOS的Hybird App提供APNS服务

APNS是iOS生态下面的推送机制。其原理是APP启动的时候,向苹果注册,并获得一个唯一token,然后不论app是否继续在运行,都可以通过调用苹果的APNS服...

1070
来自专栏木子昭的博客

微信小程序通过ip获取用户所在城市

8813

扫码关注云+社区

领取腾讯云代金券