| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- namespace App\Module\File;
- use App\Module\File\ModelsFileImg;
- use Illuminate\Http\UploadedFile;
- use Illuminate\Support\Facades\Storage;
- use Intervention\Image\ImageManager;
- use Intervention\Image\Drivers\Imagick\Driver;
- use Intervention\Image\Drivers\Gd\Driver as GdDriver;
- class Upload4User
- {
- public function __construct(protected int $user_id)
- {
- }
- /**
- * 上传图片
- *
- * @param UploadedFile $file
- * @return void
- */
- public function uploadImg(UploadedFile $file, $private = false)
- {
- $dir = Dir::getDir($this->user_id);
- // 重绘
- $upfilepath = $file->getRealPath();
- // create image manager with desired driver
- $manager = new ImageManager(new Driver());
- // read image from file system
- $image = $manager->read($upfilepath);
- // resize image proportionally
- $image->scale($image->width(), $image->height());
- $path = $dir . '/' . uniqid() . '.webp';
- // save modified image in new format
- $webpimg = $image->toWebp();
- $fileString = $webpimg->toString();
- $size = $webpimg->size();
- // dd($size);
- // 保存
- $disk = \App\Module\File\Storage::getStorage();
- $res = Storage::disk($disk)->put($path, $fileString);
- if ($res === false) {
- throw new \Exception('服务器错误,请联系客服.');
- }
- $f = new FileImg();
- $f->storage_disk = $disk;
- $f->path = $path;
- $f->user_id = $this->user_id;
- $f->o_name = $file->getClientOriginalName();
- $f->type1 = 'webp';
- $f->fsize = $size;
- $f->private = (int)$private;
- $f->re_id = 0;
- $f->re_type = '';
- $f->save();
- $f->refresh();
- return $f;
- }
- }
|