wangEditer+Lavarel+php开发实例

1前台HTML

<div class="form-group row">
                    <label for="" class="col-2 text-right">正文</label>
                    <div id="editor" class="col-10" style="background: white;z-index: 0;padding: 0"></div>
                    <input type="hidden" id="editorval" name="values" value="{{old("values")}}">
                </div>
 <div class="form-group row">
                    <div class="col-2"></div>
                    <div class="col-10 text-center">
                        <button type="submit" class="btn btn-primary" onclick="preFormSubmit()">确认提交</button>
                    </div>
                </div>

2.JS代码


    <script src="{{ asset("static/plugins/wangEditor.js") }}"></script>
    <script>
        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });

        var E = window.wangEditor
        var editor = new E('#editor')
        editor.customConfig.menus = [
            'head',
            'bold',
            'italic',
            'justify',
            'foreColor',
            'image',
        ]
        editor.customConfig.showLinkImg = false
        //上传图片时刻自定义设置 header(这里结合laravel的csrf防护)
        editor.customConfig.uploadImgHeaders = {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        };
        editor.customConfig.uploadImgServer = "{{ route('ctext_value_img') }}";

        editor.customConfig.uploadFileName = 'image';
        // 将图片大小限制为 20M
        editor.customConfig.uploadImgMaxSize = 20 * 1024 * 1024

        editor.customConfig.uploadImgHooks = {
            customInsert: function (insertImg, result, editor) {
                // 图片上传并返回结果,自定义插入图片的事件(而不是编辑器自动插入图片!!!)
                // insertImg 是插入图片的函数,editor 是编辑器对象,result 是服务器端返回的结果

                // 举例:假如上传图片成功后,服务器端返回的是 {url:'....'} 这种格式,即可这样插入图片:
                var url =result.data;
                insertImg(url);

                // result 必须是一个 JSON 格式字符串!!!否则报错
            }
        }
        editor.create()
        editor.txt.html($("#editorval").val())

        function preFormSubmit() {
            $("<input>", {
                type: 'hidden',
                val: editor.txt.html(),
                name: 'values',
            }).appendTo($('.panel-form'));
            // return true
        }
    </script>

3.php后台服务

 /**
     * 上传ctext正文内容插图
     *
     * @param  Request  $request
     *
     * @return array
     */
    public function uploadCtextValueImg(Request $request) {
        // 判断当前用户是否已经登录
        IsLogin();
        $file   = $request->file('image');
        //获取文件扩展名
        $ext      = $file->extension();
        //保存路径前缀
        $savePath = config("globalconst.xxx")."/".date("Y-m-d");
        //保存文件名
        $saveName = time().'.'.$ext;
        //复制文件操作
        $path = $file->storeAs(
            $savePath, $saveName, 'Dict'
        );
        //必须返回json字符串,否则前台会报错
        return ['errno' => 0, 'data' => [config("app.url").'/pb_img/'.$path]];

    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值