背景:laravel-admin
文件上传扩展是支持上传文件到oss或者本地的,但是在配置oss后文件不能同时上传到本地(应该是相关扩展的限制)。
$form->image($column[, $label])
或者$form->file($column[, $label]);
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]);