| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?php
- namespace App\Services;
- use App\Traits\ModelSearchWay;
- use App\Traits\ServiceAppAop;
- use App\PrintPart;
- use Illuminate\Support\Facades\Storage;
- class PrintPartService
- {
- use ModelSearchWay;
- use ServiceAppAop;
- protected $modelClass = PrintPart::class;
- public function getImagePart()
- {
- $printPart = PrintPart::query()->firstOrCreate(['name' => "PrintPart-Image"],['value' => json_encode(array(), JSON_UNESCAPED_UNICODE)]);
- $printPart['values'] = json_decode($printPart['value'], JSON_UNESCAPED_UNICODE);
- return $printPart;
- }
- public function pushImagePart($file,$fileName): array
- {
- $tempFile = $file->getRealPath();
- if (!$file->isValid()) return ['success' => false, 'message' => '未找到上传文件'];
- // if (!is_uploaded_file($tempFile)) return ['success' => false, 'message' => '获取文件错误'];
- if ($file->getSize() > 5 * 1024 * 1024) return ['success' => false, 'message' => '文件不能大于5MB'];
- $printPart = $this->getImagePart();
- $is_exists = false;
- foreach ($printPart['values'] as $values){
- if ($values['name'] == $fileName){
- $is_exists = true;
- break;
- }
- }
- if ($is_exists) return ['success' => true ,'message' => '文件名重复'];
- $fileSuffix = '.'.$file->getClientOriginalExtension();
- $dirPath = storage_path('app\public\files\print');
- if (!file_exists($dirPath)) {
- mkdir($dirPath);
- }
- $filePath = storage_path('app\public\files\print\\' . $fileName.$fileSuffix);
- $result = move_uploaded_file($tempFile,$filePath);
- if (!$result) ['success' => false , 'message' => '图片保存异常'];
- $values = ['name' => $fileName, 'value' => Storage::url("print/".$fileName.$fileSuffix)];
- PrintPart::query()->where('id',$printPart['id'])->update(['value' => json_encode($values,JSON_UNESCAPED_UNICODE)]);
- return ['success' => true , 'data' => $this->getImagePart()];
- }
- }
|