• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

百度富文本编辑器使用(PHP)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

###百度富文本编辑器使用(PHP):

一,百度富文本编辑器(PHP 完整版)

1,下载: http://ueditor.baidu.com/website/download.html#mini

     1,放置的位置:自己随便,laravel放在public中;CI放在目录存放js的目录中

     2,先引入jquery,再放置编辑器的js(浏览器的加载机制所决定的)

      <style>
          <link href="/global/js/ueditor/themes/default/css/ueditor.css" type="text/css" rel="stylesheet">
      </style>

      <script>
         <!--引入jQuery-->
         <script type="text/javascript" src="/global/js/ueditor/third-party/jquery.min.js"></script>
         <!--百度富文本编辑器配置-->
         <script type="text/javascript" src="/global/js/ueditor/ueditor.config.js"></script>
         <!--百度富文本编辑器JS-->
         <script type="text/javascript" src="/global/js/ueditor/ueditor.all.min.js"></script>
         <!--语言包-->
         <script type="text/javascript" src="/global/js/ueditor/lang/zh-cn/zh-cn.js"></script>
      </script>

      问题:百度UE,可能出现错误 ZeroClipboard is not defined  (引入了Require.js(bootstrap兼容IE8),会出现)

      $ 不要修改原有的代码逻辑 $

        &1,首先是修改配置:
        require.config({
               baseUrl: \'\',
               paths: {
                   ZeroClipboard: "./UEditor.../ZeroClipboard"//主要是加这句话
               }
        });
        
        &2,然后是在调用这个模块并把模块定义到全局变量
        <script>
             require(["ZeroClipboard"],function(ZeroClipboard){
                      window.ZeroClipboard = ZeroClipboard;
              });
        </script>

    3,使用完整版(html):

       <div id = "js-container"></div>

        <script>
           require(["ZeroClipboard"],function(ZeroClipboard){
                    window.ZeroClipboard = ZeroClipboard;
            });

    // 百度富文本编辑器的配置文件,会覆盖 ueditor.config.js中对应的选项
    $config = {
        serverUrl:\'/blog/ueditor/\',//图片上传地址
        // 工具栏,自己选择增删
        toolbars: [[
            \'fullscreen\', \'source\', \'|\', \'undo\', \'redo\', \'|\',
            \'bold\', \'italic\', \'underline\', \'fontborder\', \'strikethrough\', \'superscript\', \'subscript\', \'removeformat\', \'formatmatch\', \'autotypeset\', \'blockquote\', \'pasteplain\', \'|\', \'forecolor\', \'backcolor\', \'insertorderedlist\', \'insertunorderedlist\', \'selectall\', \'cleardoc\', \'|\',
            \'rowspacingtop\', \'rowspacingbottom\', \'lineheight\', \'|\',
            \'customstyle\', \'paragraph\', \'fontfamily\', \'fontsize\', \'|\',
            \'directionalityltr\', \'directionalityrtl\', \'indent\', \'|\',
            \'justifyleft\', \'justifycenter\', \'justifyright\', \'justifyjustify\', \'|\', \'touppercase\', \'tolowercase\', \'|\',
            \'link\', \'unlink\', \'anchor\', \'|\', \'imagenone\', \'imageleft\', \'imageright\', \'imagecenter\', \'|\',
            \'simpleupload\', \'emotion\', \'|\',
            \'horizontal\', \'date\', \'time\', \'spechars\', \'|\',
            \'inserttable\', \'deletetable\', \'insertparagraphbeforetable\', \'insertrow\', \'deleterow\', \'insertcol\', \'deletecol\', \'mergecells\', \'mergeright\', \'mergedown\', \'splittocells\', \'splittorows\', \'splittocols\', \'charts\'
        ]]
    };
    var ue = UE.getEditor(\'js-container\',$config);// 实例化编辑器
      </script>

2,PHP配置:(可以使用百度编辑器自带的PHP),一般用不上,自己要根据项目来配置

    1,编辑器上传图片或者文件的思路:

       @1,利用文件上传模块原有机制,将上传的文件保存在临时目录
       @2,移动文件到我们期望的目录,并更改文件名防止重名。 
       @3,将移动后的目录以及文件名称等信息转发给后台web程序,由web程序自己将信息写入自己的数据库。

    2,配置文件( /* 具请体看线上文档=>fex.baidu.com/ueditor/#use-format_upload_filename */)

      config/ueditor.php   [ CI框架 ]

      <?php
           //百度编辑器配置
           
           /* 前后端通信相关的配置,注释只允许使用多行方式 */
           $config["ueditor_config"] = [
               /* 上传图片配置项 */
               "imageActionName"=>"uploadimage", /* 执行上传图片的action名称 */
               "imageFieldName"=>"upfile", /* 提交的图片表单名称 */
               "imageMaxSize"=>5242880, /* 上传大小限制5MB,单位B */
               "imageAllowFiles"=>[".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */
               "imageCompressEnable"=>true, /* 是否压缩图片,默认是true */
               "imageCompressBorder"=>1600, /* 图片压缩最长边限制 */
               "imageInsertAlign"=>"none", /* 插入的图片浮动方式 */
               "imageUrlPrefix"=>"", /* 图片访问路径前缀 */
               //"imagePathFormat"=>"/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
               /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */
               /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */
               /* {time} 会替换成时间戳 */
               /* {yyyy} 会替换成四位年份 */
               /* {yy} 会替换成两位年份 */
               /* {mm} 会替换成两位月份 */
               /* {dd} 会替换成两位日期 */
               /* {hh} 会替换成两位小时 */
               /* {ii} 会替换成两位分钟 */
               /* {ss} 会替换成两位秒 */
               /* 非法字符 \ =>* ? " < > | */
               /* 具请体看线上文档=>fex.baidu.com/ueditor/#use-format_upload_filename */
           ];

     // ========================================================================

      2-2,PHP  具体使用

    <script>
    //-- 百度富文本编辑器 new UE -------------------
    var ueditor = null;
    $config = { // 配置
        serverUrl: \'/editor/report.php\',
        // 工具栏,自己选择增删
        toolbars: [[
            \'fullscreen\', \'fontsize\', \'|\', \'undo\', \'redo\', \'|\', \'bold\', \'italic\', \'underline\', \'forecolor\', \'link\',
        ]],
        autoHeightEnabled: false,
    };
    //--------------------------------------------
   
   
    // 2-1-1, 获取vue上的数据放到编辑中 ===========================
   
    //-- 百度富文本 【新增】 -----------------
          ueditor = UE.getEditor(\'txtDesc\', $config);
   //-----------------------------------------
  
   // 2-1-2, 将编辑器中数据ueditor.getContent()重新赋值到vue中 ========
   
   //-- 百度编辑器 获取文本框输入的值 --------
       this.childReport.sDesc = ueditor.getContent();
    //----------------------------------------
</script>

// php 提供  action=config的接口

$action = $_aRequest[\'action\'] ? trim($_aRequest[\'action\']) : \'\';
if ($action == \'config\') {
    exit(\'{
      /* 上传图片配置项 */
      "imageActionName": "uploadimage", /* 执行上传图片的action名称 */
      "imageFieldName": "upfile", /* 提交的图片表单名称 */
      "imageMaxSize": 5242880, /* 上传大小限制,单位B */
      "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */
      "imageCompressEnable": true, /* 是否压缩图片,默认是true */
      "imageCompressBorder":1600,
      "imageInsertAlign":"none",
      "imageUrlPrefix":"", /* 图片访问路径前缀 */
     
      /* 上传视频配置 */
      "videoActionName": "uploadvideo", /* 执行上传视频的action名称 */
      "videoFieldName": "upfile", /* 提交的视频表单名称 */
      "videoUrlPrefix": "", /* 视频访问路径前缀 */
      "videoMaxSize": 102400000, /* 上传大小限制,单位B,默认100MB */
      /* 上传视频格式显示 */
      "videoAllowFiles": [
      ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
      ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"],
      }\');
}

 // ============================================================================

     3,自己接收参数

         define(STATIC_IMG,\'http://www.xxx.com/\');//域名,服务器

         $fileName = \'upfile\';// 提交的图片表单名称,百度编辑器
         $saveImgPath = "/upload/" . date("Ymd") . "/";//上传图片的临时目录


         $imgPath //服务器返回的路径,要存储到数据库中

        $state = "SUCCESS"; // 上传成功,返回值

        $imgPath = STATIC_IMG . $imgPath;

        $getFileInfo = array(
            "url" => $imgPath,//图片url路径
            "state" => $state,//上传状态
        );
        echo json_encode($getFileInfo);

     4,接收返回值,回填页面

       $(".sCoverImgPath").change(function () {
            ajaxFabricUpload(this);
        });
        window.ajaxFabricUpload = function(o) {
            var name = $(o).prop("name");
            var options = {
                type:\'post\',
                url:\'xxxxx ?time=\'+Math.random(),
                dataType:\'json\',
                success: function(obj) {
                    if(obj["state"]==\'SUCCESS\'){
                        $("#sCoverImgPath").val(obj["url"]);
                        var src = STATIC_IMG+obj["url"];
                        $("#sCoverPathShow").prop("src",src);// 默认图,有就要替换
                        
                    }else{
                        layer.alert(obj.state);
                    }
                },
                error: function(error) {
                    alert("上传图片失败!");
                }
            };
            $("#myform").ajaxSubmit(options);
        };


    5,比 mini 多了一个 http://xxxxx/xxx/ueditor/?action=config&noCache=1534926630589

二,百度富文本编辑器(PHP mini版)

1,下载: http://ueditor.baidu.com/website/download.html#ueditor

    <script>
         $config = {
             imageUrl:\'/xxxx/\',//图片上传地址
            imageFieldName:"upfile",//图片数据的key,若此处修改,需要在后台对应文件修改对应参数
             imagePath:文件域名,
             // 工具栏
             toolbar:[
                 \'source | undo redo | bold italic underline strikethrough | superscript subscript | forecolor backcolor | removeformat |\',
                 \'insertorderedlist insertunorderedlist | selectall cleardoc paragraph | fontfamily fontsize\' ,
                 \'| justifyleft justifycenter justifyright justifyjustify |\',
                 \'link unlink | emotion image \',\'| horizontal\'
             ]
         };
         var ue = UM.getEditor(\'js-container\',$config);// 实例化编辑器,与完整版的实例化是不同的

    </script>

      public function upload($type)
      {
        if ($type == \'1\') {
            $fileName = \'ImgPath\';// 上传的文件,本地封面图
            $saveImgPath = "/ImgPath/" . date("Ymd") . "/";
        } elseif ($type == \'2\') {
            $fileName = \'upfile\';
            $saveImgPath = "/upfile/" . date("Ymd") . "/";
        }
        if (isset($_FILES[$fileName]) && $_FILES[$fileName]["error"] != 4) {
            //图片上传
            $imgPath = $this->uploadpic->Pic($_FILES[$fileName], $saveImgPath);
            //处理返回值
            if ($imgPath == false) {
                json_encode(1001, "上传封面图失败,错误:" . $this->uploadpic->Error());
            } else {
                $state = "SUCCESS";
            }
        } else {
            $state = "图片不存在或不完整!";
        }
        $getFileInfo = array(
            "url" => $imgPath,//图片url路径
            "state" => $state,//上传状态
        );
        echo json_encode($getFileInfo);
    }


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP Ueditor 富文本编辑器发布时间:2022-07-10
下一篇:
PHP富文本编辑器 之Kindeditor的使用 一 - 细心耕作发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap