当前位置:网站首页>UEditor图片跨域上传解决方案
UEditor图片跨域上传解决方案
2022-06-09 15:57:00 【木鱼大叔】
预设环境
- UEditor版本:1.4
- 客户端地址:http://www.aaa.com
- 图片服务器地址:http://www.bbb.com
- 图片服务器端UEditor的部署URL:http://www.bbb.com/ueditor/
- 客户端和图片服务器各部署一套UEditor环境
客户端修改
修改1:/ueditor/ueditor.config.js
将原有的serverUrl注释掉,然后在下面新增一行,内容为
, serverUrl: "http://www.bbb.com/ueditor/php/controller.php"如图:

修改2:/ueditor/php/config.json
修改文件访问路径前缀,具体为,将该文件中所有以UrlPrefix结尾的参数,修改为http://www.bbb.com
如图:

修改3:增加回调函数
在http://www.aaa.com根目录下,新建一个ue_upload_callback.php文件,内容如下:
$ueUploadCallback = new UeUploadCallback();
call_user_func_array(array($ueUploadCallback,'index'),array());
class UeUploadCallback {
public function index() {
die($_REQUEST['ueResult']);
}
}图片服务器端修改
服务器端,只需要修改/ueditor/php/controller.php一个文件即可。主要就是增加一个callbackUrl参数,用于跨域时的数据回调,同时增加跨域权限设置。
1. 增加跨域权限设置
header('Access-Control-Allow-Origin:http://www.aaa.com');
header('Access-Control-Allow-Methods:POST,GET,OPTIONS');
header('Access-Control-Allow-Credentials:true');
$requestMethod = $_SERVER['REQUEST_METHOD'];
if ($requestMethod == 'OPTIONS') {
header('Content-Type:text/plain charset=UTF-8');
header('Content-Length: 0',true);
header('status: 204');
header('HTTP/1.0 204 No Content');
} else {
header('Access-Control-Allow-Headers:Origin,X-Requested-With,X_Requested_With,Content-Type,Accept');
}2. 增加跨域回调参数
将原有的代码
/* 输出结果 */
if (isset($_GET["callback"])) {
if (preg_match("/^[\w_]+$/", $_GET["callback"])) {
echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')';
} else {
echo json_encode(array(
'state'=> 'callback参数不合法'
));
}
} else {
echo $result;
}修改为
/* 输出结果 */
if (isset($_GET["callback"])) {
if (preg_match("/^[\w_]+$/", $_GET["callback"])) {
echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')';
} else {
echo json_encode(array(
'state'=> 'callback参数不合法'
));
}
} else {
if ($_REQUEST['callbackUrl']) {
header("Location:".$_REQUEST['callbackUrl']."?ueResult=".urlencode($result));
} else {
echo $result;
}
}注意:此处的ueResult参数,客户端将通过该参数,获取UEditor返回的数据。
客户端调用
<script id="container" name="content" type="text/plain"></script>
<script type="text/javascript">
var ue = UE.getEditor('container');
ue.ready(function() {
//绑定自定义的回调URL
ue.execCommand('serverparam', {
'callbackUrl': 'http://www.aaa.com/ue_upload_callback.php'
});
});
</script>
边栏推荐
- Deepin 编译VirtualBox实录以及编译报错解决
- SAP Commerce Cloud 构建过程中的文件夹可写入性问题分析
- 记一次可怜的150元RCE平安Src挖掘
- June training (day 01) - array
- 看完就会,从抓包到接口测试的全过程解析
- [ctfshow singles cup]web writeup & learn the basic usage of SED awk
- Where to open an account for futures and who to open it for safe and reliable??
- 读《中台架构与实现》
- nth-child选择器
- QueryList异步抓取网页数据
猜你喜欢

容器和镜像的区别

After the change of beauty brands and consumer demand, how can retailers not fall behind?

QueryList异步抓取网页数据

ASEMI的MOS管9N90参数,9N90电路图,9N90实物图

DAC8560的用法

Easywechat realizes wechat real payment operation

How does the memory database give full play to its memory advantage?

Ruoyi mind map

JPEX推出BAYC MAYC合约系列 欢迎体验

ESP32-C3单火线智能开关,赋能传统开关智能化升级
随机推荐
opensuse 自动挂载硬盘
R语言plotly可视化:plotly可视化水平箱图(Horizontal Boxplot)
现金类的理财产品是保本的吗?
Consul学习
【GO语言学习之路】结构体实战
Easywechat realizes wechat real payment operation
June training (day 05) - double pointer
Still building projects from scratch? This upgraded rapid development scaffold is worth a try~
Dotnet core releases only necessary dependent files
若依 思维导图
EasyExcel-合并单元格
应用软件效率测试的执行策略
ASEMI的MOS管9N90参数,9N90电路图,9N90实物图
美妆品牌与消费者需求更迭之后,零售商们如何不掉队?
R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)、gplots包的plotmeans函数在双因素方差分析中显示交互作用、包括均值,误差条、95%置信区间、样本量
Moonbeam foundation and Arrington capital jointly launched the $100million ecological growth fund to promote the ecological growth of moonbeam
Differences between single application and microservice invocation
Interface test series -- practical application of autodiff traffic playback in integration test
撸了一个OpenSuse作为日常工作系统
Kubernetes certificate collection