百度编辑器前后端二开图片上传Js Thinkphp tp5 ueditor

百度编辑器图片上传Js

ueditor.all.min.js 下载链接


链接:https://pan.baidu.com/s/1VNgw9ELgRRHKeCQheFkQTw
提取码:fnfi

使用方法:

替换原来的 ueditor.all.min.js 

 

NPM 本地快速DEMO:( 前端 )

  创建一个文件夹:执行如下命令; 再到浏览器运行 localhost:3000 ;( 需要配置本地服务器:修改ueditor.config.js 文件的 serverUrl 的值为本地服务器域名入口,默认为:http://192.168.3.25:19998/index/index/hello )

npm i xuguo_ue && cd node_modules/xuguo_ue && node index.js

   注:PHP需要开启跨域:

        header('Access-Control-Allow-Origin:*');
        header('Access-Control-Allow-Methods: GET,POST,OPTIONS,DELETE,PUT');
        header('Access-Control-Allow-Headers: Origin,Content-Type, Accept, Authorization, X-Request-With');
        header('Access-Control-Allow-Credentials: true');
        header('Access-Control-Allow-Headers: X-Requested-With,X_Requested_With');

 

问题:

只是实现了图片的上传与 Dom 的载入,本人为不改变原生百度的编辑的通用逻辑,图片路径显示依然是相对路径;

   注:当使用PHP Thinkphp 5.1时,如果在使用 ROUTE 并只在 模块里添加跨域代码。会导致不能成功跨域。

//解决方法一是修改为默认路由方式(/module/controller/action);

//解决方法二是配置ROUTE路由跨域:以下代码作为参考
Route::get('new/:id', 'News/read')
->header('Access-Control-Allow-Origin','*')
->header('Access-Control-Allow-Methods','GET,POST,OPTIONS,DELETE,PUT')
->header('Access-Control-Allow-Headers','Origin,Content-Type, Accept, Authorization, X-Request-With')
->header('Access-Control-Allow-Credentials', 'true')
->header('Access-Control-Allow-Headers', 'X-Requested-With,X_Requested_With')
->allowCrossDomain();
 

   如:PHP 使用 Composer 加载使用:composer require xuying/ueditor;   (默认路由:domain.com/ueditor ;因默认路由与保存图片的地址相同,请自配置config.json).然后创建控制器添加如下代码。

//添加对应控制器,将下面代码插入 
header('Access-Control-Allow-Origin:*');
        header('Access-Control-Allow-Methods: GET,POST,OPTIONS,DELETE,PUT');
        header('Access-Control-Allow-Headers: Origin,Content-Type, Accept, Authorization, X-Request-With');
        header('Access-Control-Allow-Credentials: true');
        header('Access-Control-Allow-Headers: X-Requested-With,X_Requested_With');
        $config_file = __DIR__ . '/../config.json'; //fixme 使用自定义config.json路径
        $ss = new Control($config_file);//初始化
        $ss->index();//运行

 

解决思路:

  1. 使用过滤(正则)的方式进行交互;(目前推荐)
  2. 使用CDN的方式配置整体BaseUrl ;

     

  3. PHP 配置输出域名:如列:(可暂时使用)
       

    缺点:导致数据库数据包含了域名,搬家时需要注意资源内容的访问。
    问题:我们可以在提交时过滤掉内容包含的域名,但是编辑器内容丰富,有可能是其它外部的资源,这样为内容替换增加了难度。

  4. -- 

posted @ 2019-01-16 18:32  徐锅  阅读(860)  评论(0编辑  收藏  举报