Layui富文本编辑器内容不显示,图片上传等问题

前提

开发环境

  • 后台:PHP (ThinkPHP5.0)
  • 前台:jQuery (Layui.js)

解决问题

  • 富文本编辑器内容不显示
  • layui图片上传接口编写
  • layui富文本编辑器图片不显示

代码示例

前台 HTML

一定要记得包裹在form标签,具体提交方式根据业务来,可以是ajax,可以是method,此处选择ajax。
此处一定要记的严格按照layui表单内容写法!防止加载失败! lay-verify=“content”

<!--form元素开始-->
   <div class="m-t ibox-content layui-form">
       <div class="layui-form-item">
           <textarea id="demo" style="display: none;" name="content" lay-verify="content" class="field-content"></textarea>
       </div>
       <button type="submit" class="layui-btn layui-btn-normal" lay-submit="" lay-filter="component-form-element">添加</button>
   </div>
<!--form元素结束-->

前台 Layui.js

此处js包含图片接口,后面会具体写图片上传api

<script>
    layui.use(['layer','layedit', 'form','jquery'],function() {
        var form = layui.form, layer = layui.layer;
        var $ = layui.$;
        var layedit = layui.layedit;
        layedit.set({
            uploadImage: {
                url: '{:url(\'api/upload/edit_img\')}' //图片上传接口url
                ,type: 'post' //默认post
            }
        });
        var index = layedit.build('demo', {
            height: 480 //设置编辑器高度
        }); //建立编辑器
        form.verify({
            content: function (value) {
                return layedit.sync(index);
            }
        })
    })
</script>

=当你做到上述步骤时,已经可以正常显示富文本编辑器文本html内容

=以下是图片上传接口,PHP编写

图片上传接口

记住此接口要严格按照layui图片上传接口返回格式书写

  • 返回码必须0
  • msg内容自定义
  • data必须为数组,返回两个参数src 和 title,其中src必须严格书写,用于富文本加载图片,建议前期先测试好该地址,看看是否能加载,否则加载失败,并且控制台和layui.msg不会做任何提示!很大部分图片上传失败都是由于src接口错误导致!我图片上传接口符合ThinkPHP5.0格式,并且测试可以网络可以正常加载。
/**
     * json(['code' => 0, 'msg' => '', 'data' => $data]);
     * {
     *   "code": 0 //0表示成功,其它失败
     *   ,"msg": "" //提示信息 //一般上传失败后返回
     *   ,"data": {
     *       "src": "图片路径",
     *       "title": "图片名称" //可选
     *      }
     *  }
     */
    public function edit_img()
    {
        $isLogin = lib\Tools::isLogin();
        if(!$isLogin) {
            return show('500','请登录后操作');
        }
        $file = request()->file('file');
        $dir = ROOT_PATH . 'public' . DS . 'about/';
        $info = $file->move($dir);
        if($info && $info->getPathname()) {
            $data = [
                'src'    => '__STATIC__/../about/'.$info->getSaveName(),
                'title'  => 'link_image'
            ];
            return json(['code' => 0, 'msg' => 'ok', 'data' => $data]);
        }else {
            return json(['code' => 500, 'msg' => 'error', 'data' => '']);
        }
        return json(['code' => 500, 'msg' => 'error', 'data' => '']);
    }

=当你做到上述步骤时,已经可以正常显示富文本编辑器图片上传内容

总结

  • 在书写时,请严格按照Layui返回参数书写
  • 目前Layui富文本编辑器还在升级阶段,存在多处Bug,例如图片会直接上传,造成服务器空间浪费,并且工具栏还不丰富,当然我还是选择支持Layui
  • 如果还存在问题,请留言,我会及时解决
没有账号? 忘记密码?

社交账号快速登录