| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
- namespace App\Services;
- use App\Traits\ServiceAppAop;
- use App\PrintPartImage;
- use App\UploadFile;
- use Ramsey\Uuid\Uuid;
- class PrintPartImageService
- {
- use ServiceAppAop;
- protected $modelClass = PrintPartImage::class;
- /**
- * 保存上传文件
- * @param PrintPartImage $model
- * @param $file
- * @return array
- */
- public function saveFile(PrintPartImage $model, $file): array
- {
- $result = $this->saveImage($file,$model);
- if (!$result['success'])return $result;
- $model->saveFile($file,$result['fileName']);
- $model->load('file');
- return ['success' => true, 'message' => '文件上传成功', 'data' => $model ];
- }
- /**
- * 保存上传图片
- * @param $file
- * @param $model
- * @return array
- */
- public function saveImage($file,$model): array
- {
- $tmpFil = $file->getRealPath();
- if (!$file) return ['success' => false, 'message' => '上传图片为找到'];
- if (!$file->isValid()) return ['success' => false, 'message' => '找不到上传图片'];
- if (!is_uploaded_file($tmpFil)) return ['success' => false, 'message' => '文件错误'];
- if ($file->getSize() > 5 * 1024 * 1024) return ['success' => false, 'message' => '文件不能大于5MB'];
- $path = ['app', 'public', 'files'];
- $path = join(DIRECTORY_SEPARATOR, $path);
- $dirPath = storage_path($path);
- if (!file_exists($dirPath)) {
- mkdir($dirPath);
- }
- $fileSuffix = $file->getClientOriginalExtension();
- $fileName = $model['name'].date('ymd').'-'.Uuid::uuid1();//thumbnail common bulky
- if (!in_array($fileSuffix, ['jpeg', 'jpg', 'png', 'svg']))
- return ['success' => false, 'message' => '上传的文件格式应为jpeg,jpg,png,svg'];
- $filePath = storage_path($path.DIRECTORY_SEPARATOR . $fileName .'.'. $fileSuffix);
- $result = move_uploaded_file($tmpFil, $filePath);
- if ($result) return ['success' => true,'fileName' => $fileName];
- else return ['success' => false, 'message' => '文件上传失败'];
- }
- /**
- * 修改打印图片
- * @param PrintPartImage $model
- * @param $file
- * @return array
- */
- public function updateFile(PrintPartImage $model,$file): array
- {
- $result = $this->saveImage($file,$model);
- if (!$result['success'])return $result;
- UploadFile::query()->where(['table_name' => 'print_part_images','table_id' => $model['id']])->update(['url' => '/files/'.$result['fileName'], 'type' => $file->getClientOriginalExtension()]);
- $model->refresh();
- return ['success' => true, 'message' => '文件上传成功', 'data' => $model ];
- }
- }
|