背景: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 協議》,轉載必須註明作者和本文連結