laravel-admin 文件分别上传(oss,本地)
背景:laravel-admin
文件上传扩展是支持上传文件到 oss 或者本地的,但是在配置 oss 后文件不能同时上传到本地(应该是相关扩展的限制)。
目标:实现文件上传 oss 同时文件本地上传#
实践#
文件本地上传
- 正常使用
$form->image($column[, $label])
或者$form->file($column[, $label]);
- 正常使用
oss 扩展安装
- 文件上传 oss 扩展安装
- 配置:
app/filesystems.php
文件disks.oss
参照扩展文档配置(省略步骤default.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 协议》,转载必须注明作者和本文链接
推荐文章: