laravel-admin 文件分别上传(oss,本地)

背景:laravel-admin文件上传扩展是支持上传文件到oss或者本地的,但是在配置oss后文件不能同时上传到本地(应该是相关扩展的限制)。

目标:实现文件上传oss同时文件本地上传

实践

  • 文件本地上传

    • 正常使用$form->image($column[, $label])或者$form->file($column[, $label]);
  • oss扩展安装

  • oss表单扩展创建

    • 创建 App\Admin\Extensions\AdminOssImageUpload.php;

        namespace App\Admin\Extensions;
      
        use Encore\Admin\Form\Field\File;
        use Illuminate\Support\Facades\Storage;
      
        class AdminOssImageUpload extends File
        {
            protected $view = 'admin::form.file'; // 引用后台视图
      
            public function prepare($image)
            {
                // 文件上传.......
                $path = $image->getRealPath();
                $filename = $this->getRandStr().time().'.'.$ext; // 自定义文件名称
                $storage = Storage::disk('oss');
                $storage->putFileAs('/img/', $path, $filename); // 文件上传操作
                // 文件上传end.......
      
                return $url; // 返回上传后路由即可
            }
        }
    • 扩展注册,修改 App\Admin\bootstrap.php 文件

        use App\Admin\Extensions\AdminOssImageUpload;
      
        Form::extend('ossImage', AdminOssImageUpload::class);
    • 使用

        $form->ossImage($column[, $label]);

结果:文件可正常到oss,同时可以使用本地上传

参考

本作品采用《CC 协议》,转载必须注明作者和本文链接
it_cwc
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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