CKEditor 5上传图片代码整合 -

<html lang="zh-cn">
<head>
    <meta charset="utf-8">
    <title>修改 
    </title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
    <meta name="renderer" content="webkit">
    <link rel="shortcut icon" href="/assets/img/favicon.ico">
    <link href="/assets/css.css" rel="stylesheet">
    <link href='/static/css/xxx.css' rel='stylesheet' type='text/css' />
    <!-- HTML5 shim, for IE6-8 support of HTML5 elements. All other JS at the end of file. -->
    <!--[if lt IE 9]>
        <script src="/assets/js/html5shiv.js"></script>
        <script src="/assets/js/respond.min.js"></script>
        <![endif]-->
        <style>
                .ck-editor__editable {
                    min-height: 100px;
                }
            </style>
</head>

<body class="inside-header inside-aside is-dialog">
    <div id="main" role="main">
        <div class="content" style="padding-top: 18px;padding-left:80px;padding-right: 80px;">
            <form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST"
                action="/article/edit/">

                <div class="form-group">
                    <label for="c-qrcode_id" class="control-label col-xs-12 col-sm-2">标题:</label>
                    <div class="col-xs-12 col-sm-4">
                        <input class="form-control" name="row[title]" id="title"
                            value="">
                    </div>
                    <label for="c-qrcode_id" class="control-label col-xs-12 col-sm-1">排序值:</label>
                    <div class="col-xs-4 col-sm-2">
                        <input class="form-control" name="row[sortrank]" id="title"
                            value="">
                    </div>
                </div>

                <div class="form-group">

                    <label for="c-status" class="control-label col-xs-12 col-sm-1">状态:</label>
                    <div class="radio col-xs-12 col-sm-2">
                        <label for="row[status]-inprogress">
                            <input id="row[status]-inprogress" name="row[status]" type="radio" value="1"/>
                            正常</label>
                        <label for="row[status]-expired">
                            <input id="row[status]-expired" name="row[status]" type="radio"  value="0"/>
                            禁用</label>
                    </div>

                </div>

                <div class="form-group">
                    <div id="mdeditor">
                        <textarea name="content" id="content" style="width:80%;"></textarea>
                    </div>
                </div>

                <div class="">
                    <label for="description" class="">描述:</label>
                    <div class="">
                        <textarea name="row[description]" class="form-control" rows="5"
                            id="description"></textarea>
                    </div>
                </div>

                <div class="form-group" style="text-align:center;">
                    <button type="submit" class="btn btn-success btn-embossed">
                        提交
                    </button>
                </div>
            </form>
        </div>
    </div>
</body>
<script type="text/javascript" src="/static/js/jquery.js"></script>
<script type="text/javascript" src="https://cdn.ckeditor.com/ckeditor5/12.4.0/classic/ckeditor.js"></script>
<script type="text/javascript" src="/static/js/layer/layer.js"></script>
<script type="text/javascript" src="/static/js/jquery.form.js"></script>
<script type="text/javascript">
    //初始化编辑器
    ClassicEditor.create(document.querySelector('#content'), {
        //removePlugins: ['MediaEmbed'], //除去视频按钮
        language: 'zh-cn',  // 中文
        ckfinder: {
             uploadUrl: "/api/uploader/ckeditor5"
        }
    }).then(editor => {
        //const toolbarContainer = document.querySelector('#toolbar-container')
        //toolbarContainer.appendChild(editor.ui.view.toolbar.element)
        // 加载了适配器
        //editor.plugins.get('FileRepository').createUploadAdapter = (loader) => {
        //    return new MyUploadAdapter(loader)
        //}
        this.editor = editor // 将编辑器保存起来,用来随时获取编辑器中的内容等,执行一些操作
    }).catch(error => {
        console.error('error')
    })

    class MyUploadAdapter {
        constructor(loader) {
            this.loader = loader;
        }
        upload() {
            return new Promise((resolve, reject) => {
                const data = new FormData();
                let size = this.loader.file.size;
                console.error(size);
                console.log(this.loader.file);
                data.append('imgfile', this.loader.file);
                data.append('allowSize', 10);//允许图片上传的大小/兆
                $.ajax({
                    url: '/upload-url/ckeditor5',
                    type: 'POST',
                    data: data,
                    dataType: 'json',
                    processData: false,
                    contentType: false,
                    success: function (data) {
                        if (data.res) {
                            resolve({
                                default: data.url
                            });
                        } else {
                            reject(data.msg);
                        }
                    }
                });
            });
        }
        abort() {
        }
    }

</script>

</html>