123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- namespace App\Services\File\Upload;
- use Illuminate\Http\Request;
- class FilesUploadService
- {
- use FilesUploadTrait;
- protected int $filesSize = 0;
- protected ?ProgressBar $progressBar = null;
- public function __construct(protected Request $request)
- {
- $this->filesSize = $this->checkRequestData($this->request);
- if ($this->request->get("request_id")) {
- $this->progressBar = new ProgressBar($this->request->get("request_id"), $this->filesSize);
- }
- }
- public function upload(): array
- {
- $items = [];
- $fileNames = $this->request->get("file_names", []);
- foreach ($this->request->file("files") as $index => $file) {
- $item = $this->uploadFile($this->request, $file, $this->progressBar);
- $item['file']['title'] = $fileNames[$index] ?? $item['file']['title'];
- $items[] = $item;
- }
- $uploadedFiles = $this->storeFiles($items);
- $this->updateUsedStorageCapacity($this->filesSize);
- $this->progressBar?->completed();
- return $uploadedFiles;
- }
- /**
- * 上传BIM模型
- * @return array
- */
- public function uploadModels(): array
- {
- $files = $this->request->get("files", []);
- $items = [];
- foreach ($files as $file) {
- $item = $this->uploadFileWithPath($this->request, $file['pathname'], $file['title'], $file['size']);
- $items[] = $item;
- }
- $uploadedFiles = $this->storeFiles($items);
- return $uploadedFiles;
- }
- }
|