dcat的tinymce富文本编辑器扩展多图上传

dcat默认使用的富文本编辑器tinymce只有单图上传,没有多图上传,看文档发现有多图上传的插件,只要把这个插件整合到dcat就可以了。
插件地址:tinymce.ax-z.cn/more-plugins/axupim...
插件下载地址:tinymce.ax-z.cn/more-plugins/axupim...
效果:
dcat的tinymce富文本编辑器扩展多图上传

dcat的tinymce富文本编辑器扩展多图上传

首先,下载插件并解压,复制到这个目录
/public/vendor/dcat-admin/dcat/plugins/tinymce/plugins/axupimgs

dcat的tinymce富文本编辑器扩展多图上传

然后编辑这个文件/app/Admin/bootstrap.php
为了获取上传图片的url,需要通过反射调用defaultImageUploadUrl方法,然后在images_upload_handler回调中将多图上传文档demo中的url替换掉即可

Form\Field\Editor::resolving(function (Form\Field\Editor $editor) {
    $editor->imageDirectory(EditorImageUploadPath)->height(400); // 如果不修改配置可以删掉 EditorImageUploadPath是我自定义的图片保存路径
    $ref = new \ReflectionClass(get_class($editor));
    $method = $ref->getMethod('defaultImageUploadUrl');
    $method->setAccessible(true);
    $url = $method->invoke($editor);
    $editor->options([
                                  'plugins'               => [
                                      'advlist',
                                      'autolink',
                                      'link',
                                      'image',
                                      'axupimgs', 
                                      'media',
                                      'lists',
                                      'preview',
                                      'code',
                                      'help',
                                      'fullscreen',
                                      'table',
                                      'autoresize',
                                      'codesample',
                                      '',
                                  ],
                                  'toolbar'               => [
                                      'undo redo | preview fullscreen | styleselect | fontsizeselect bold italic underline strikethrough forecolor backcolor | link image axupimgs media blockquote removeformat codesample',
                                      'alignleft aligncenter alignright  alignjustify| indent outdent bullist numlist table subscript superscript | code',
                                  ],// plugins和toolbar添加axupimgs
                                  'images_upload_handler' =>\Dcat\Admin\Support\JavaScript::make(
                                      <<<JS
                                  function (blobInfo, succFun, failFun) {
       var xhr, formData;
       var file = blobInfo.blob();
       xhr = new XMLHttpRequest();
       xhr.withCredentials = false;
       xhr.open('POST', "$url"); // 图片上传url
       xhr.onload = function() {
           var json;
           if (xhr.status != 200) {
               failFun('HTTP Error: ' + xhr.status);
               return;
           }
           json = JSON.parse(xhr.responseText);
           if (!json || typeof json.location != 'string') {
               failFun('Invalid JSON: ' + xhr.responseText);
               return;
           }
           succFun(json.location);
       };
       formData = new FormData();
       formData.append('file', file, file.name );
       xhr.send(formData);
   }
JS
                                  ), // 直接写会被当成字符串,而不是js函数
                              ]);
});
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!