filesSize = $this->checkRequestData($this->request); if ($this->request->get("request_id")) { $this->progressBar = new ProgressBar($this->request->get("request_id"), $this->filesSize); } $this->parentFolder = $this->request->get("folder_id") ? Folder::query()->findOrFail($this->request->get("folder_id")) : null; } 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']; $item['file']['naming_rule_id'] = $this->parentFolder?->naming_rule_id; $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", []); $uploadedFiles = []; DB::transaction(function() use ($files, &$uploadedFiles) { foreach ($files as $file) { $uploadedFiles[] = $this->uploadFileWithPath($this->request, $file['pathname'], $file['title'], $file['size'], $this->parentFolder?->naming_rule_id); } }); $gisType = $this->request->input('gis_type', ''); foreach ($uploadedFiles as $uploadedFile) { if ($uploadedFile['is_bim'] == 1) { $bimFileBO = new BimFileBO($uploadedFile->extension, $uploadedFile->title, Auth::user()->name, $gisType); $bimFileBO->setConfigJson($this->request->input('configJson', [])); $bimFileBO->setPointCloudConfigJson($this->request->input('pointCloudConfigJson', [])); ConvertBimFile::dispatch($uploadedFile['id'], $bimFileBO); } } $this->updateObjectVersion(); return $uploadedFiles; } }