首页 > 技术文章 > CKeditor5 图片上传

wnqc 2018-05-07 22:49 原文

下面是自定义了一个适配器,之前我一直是在
ClassicEditor
    .create( editorElement, {
        ckfinder: {
            uploadUrl: '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files&responseType=json'
        }
    } )
    .then( ... )
    .catch( ... );

  这里添加了个 ckfinder ,没弄出来。  所以用了下面 很 贼几把OK,感谢发我这段代码的 那位大佬。

//  上传适配器,格式官网上有,以一种Promise 的方式。Promise好像是有阻塞的意思在里面。
class UploadAdapter {
    constructor(loader) {
        this.loader = loader;
    }
    upload() {
        return new Promise((resolve, reject) => {
            const data = new FormData();
            data.append('upload', this.loader.file);
            data.append('allowSize', 10);//允许图片上传的大小/兆
            $.ajax({
                url: 'loadImage',
                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() {
    }
}

DecoupledEditor
        .create( document.querySelector( '#b' ), {
            language:"zh-cn"
        })
        .then( editor => {
            const toolbarContainer = document.querySelector( '#a' );
            toolbarContainer.appendChild( editor.ui.view.toolbar.element );
            
           // 这个地方加载了适配器
            editor.plugins.get('FileRepository').createUploadAdapter = (loader)=>{
                return new UploadAdapter(loader);
            };
        } )
        .catch( error => {
            console.error( error );
        } );

 

                                                                              2018年5月7日22:47:58

推荐阅读