FilesUploadService.php 831 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace App\Services\File\Upload;
  3. use Illuminate\Http\Request;
  4. class FilesUploadService
  5. {
  6. use FilesUploadTrait;
  7. protected int $filesSize = 0;
  8. public function __construct(protected Request $request)
  9. {
  10. $this->filesSize = $this->checkRequestData($this->request);
  11. }
  12. public function upload(): array
  13. {
  14. $items = [];
  15. $fileNames = $this->request->get("file_names", []);
  16. foreach ($this->request->file("files") as $index => $file) {
  17. $item = $this->uploadFile($this->request, $file);
  18. $item['file']['title'] = $fileNames[$index] ?? $item['title'];
  19. $items[] = $item;
  20. }
  21. $uploadedFiles = $this->storeFiles($items);
  22. $this->updateUsedStorageCapacity($this->filesSize);
  23. return $uploadedFiles;
  24. }
  25. }