美文网首页
UEditor图片跨域上传解决方案

UEditor图片跨域上传解决方案

作者: 木鱼大叔 | 来源:发表于2019-05-24 14:27 被阅读0次

预设环境

UEditor版本:1.4

客户端地址:http://www.aaa.com

图片服务器地址:http://www.bbb.com

图片服务器端UEditor的部署URL:http://www.bbb.com/ueditor/

客户端和图片服务器各部署一套UEditor环境

客户端修改

修改1:/ueditor/ueditor.config.js

将原有的URL注释掉,然后在下面新增一行,内容为

var URL = "http://www.bbb.com/ueditor/";

如图:

修改2:/ueditor/php/config.json

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

如图:

图片服务器端修改

服务器端,只需要修改/ueditor/php/controller.php一个文件即可。主要就是增加一个callbackUrl参数,用于跨域时的数据回调,同时增加跨域权限设置。

1. 增加跨域权限设置

header('Access-Control-Allow-Origin: http://www.aaa.com'); //设置跨域访问

header('Access-Control-Allow-Headers: X-Requested-With,X_Requested_With'); //设置允许的跨域header

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/uploadCallback'

        });

    });

</script>

然后在回调中,直接输出UEditor返回的数据就可以了。

public function uploadCallback() {

    die($_REQUEST['ueResult']);

}

相关文章

网友评论

      本文标题:UEditor图片跨域上传解决方案

      本文链接:https://www.haomeiwen.com/subject/jomgzqtx.html