资讯专栏INFORMATION COLUMN

laravel-admin集成ueditor编辑器的图片列表显示问题解决方法

sanyang / 3302人阅读

摘要:集成推荐使用,它是的版本。七牛分配的域名注意带上修复上传界面中无法管理文件列表的问题注释掉下面的行下面三行是修改的如果不取到,报找不到的错误判断是否错误返回数据

laravel-admin集成ueditor推荐使用laravel-u-editor,它是ueditor的laravel composer版本。基于UEditor 1.4.3.3开发,支持en、zh_CN、zh_TW,并且支持本地和七牛云存储,默认为本地上传 public/uploads

安装
composer require stevenyangecho/laravel-u-editor
然后在config/app.php的providers下增加一行
StevenyangechoUEditorUEditorServiceProvider::class
执行
php artisan vendor:publish
基本配置
1.增加组件文件:app/Admin/Extensions/Form/uEditor.php:

script = <<
    
    
@include("admin::form.error") {{-- 这个style可以限制他的高度,不会随着内容变长 --}} @include("admin::form.help-block")
3. 然后注册进laravel-admin,在app/Admin/bootstrap.php中添加以下代码: use AppAdminExtensionsFormuEditor; EncoreAdminForm::extend("ueditor", uEditor::class); 4. 调用: $form->ueditor("content", "内容")->rules("required"); 配置七牛服务
打开文件configUEditorUpload.php配置七牛配置参数

// 将下一行注释
//        "mode"=>"local",//上传方式,local 为本地   qiniu 为七牛
        "mode"=>"qiniu",//上传方式,local 为本地   qiniu 为七牛

        //七牛配置,若mode="qiniu",以下为必填.
        "qiniu"=>[
            "accessKey"=>"。。。",
            "secretKey"=>"。。。",
            "bucket"=>"。。。",
            "url"=>"。。。",//七牛分配的CDN域名,注意带上http://

        ]
    ],
修复上传界面中无法管理文件列表的问题
vendorstevenyangecholaravel-u-editorsrcListsQiniu.php
public function getList()
    {
        $size = $this->request->get("size", $this->listSize);
        $start = $this->request->get("start", "");
        $auth = new Auth(config("UEditorUpload.core.qiniu.accessKey"), config("UEditorUpload.core.qiniu.secretKey"));

        $bucketManager = new BucketManager($auth);
        // 注释掉下面的行
//        list($items, $marker, $error) = $bucketManager->listFiles(config("UEditorUpload.core.qiniu.bucket"), $this->path, $start, $size);
// 下面三行是修改的
        $result1 = $bucketManager->listFiles(config("UEditorUpload.core.qiniu.bucket"), $this->path, $start, $size);
        $size = count($result1);
        // 如果不取到items,报找不到key的错误
        $items = $result1[0]["items"];
// 判断是否错误
        if ($size > 2) {
            return [
                "state" => $error->message(),
                "list" => array(),
                "start" => $start,
                "total" => 0
            ];
        }
        if(empty($items)){
            return [
                "state" => "no match file",
                "list" => array(),
                "start" => $start,
                "total" => 0
            ];
        }

        $files=[];
//        dd($items["items"]);
        foreach ($items as  $v) {
            if (preg_match("/.(" . $this->allowFiles . ")$/i", $v["key"])) {
                $files[] = array(
                    "url" =>rtrim(config("UEditorUpload.core.qiniu.url"),"/")."/".$v["key"],
                    "mtime" => $v["mimeType"],
                );
            }
        }
        if(empty($files)){
            return [
                "state" => "no match file",
                "list" => array(),
                "start" => $start,
                "total" => 0
            ];
        }
        /* 返回数据 */
        $result = [
            "state" => "SUCCESS",
            "list" => $files,
            "start" => $start,
            "total" => count($files)
        ];

        return $result;
    }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28818.html

相关文章

  • 解决laravel-admin中select在form编辑时不能自动选中当前问题

    摘要:为每一个中创建一个能够自动生成的的方法就可以了。例如为这个创建生成的方法获取用户列表在对应的控制器中使用比如的控制器中标题摘要简介正文作者略文档中说的使用接口方式,而且返回文档中的格式,是不能解决自动选中原值的,只能是空白的。 为每一个Model中创建一个能够自动生成select的option的方法就可以了。 例如为User.php这个model创建生成option的方法 /*...

    snowLu 评论0 收藏0
  • laravel-admin 文件上传OSS

    摘要:前言因为项目需求,需要把图片上传至阿里云,我的接口和后台项目是分开的,都使用的框架开发,接入这里就不做讨论了,这里主要说一下上传阿里的问题。 前言 因为项目需求,需要把图片上传至阿里云 OSS,我的 Api 接口和后台项目是分开的,都使用的 laravel 框架开发,Api 接入 OSS 这里就不做讨论了,这里主要说一下 laravel-admin 上传阿里 OSS 的问题。 网上的一...

    darkbaby123 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<