ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
UploadLimitResolver.php
Go to the documentation of this file.
1 <?php
2 
18 declare(strict_types=1);
19 
21 
23 
41 {
46  public function __construct(
47  protected int $php_upload_limit_in_bytes,
48  protected ?int $custom_global_upload_limit_in_bytes = null
49  ) {
50  }
51 
53  UploadHandler $upload_handler,
54  int $local_limit_in_bytes = null
55  ): int {
56  if (null !== $local_limit_in_bytes && $this->canUploadLimitBeUsed($upload_handler, $local_limit_in_bytes)) {
57  return $local_limit_in_bytes;
58  }
59 
60  if (null !== $this->custom_global_upload_limit_in_bytes &&
61  $this->canUploadLimitBeUsed($upload_handler, $this->custom_global_upload_limit_in_bytes)
62  ) {
63  return $this->custom_global_upload_limit_in_bytes;
64  }
65 
66  return $this->php_upload_limit_in_bytes;
67  }
68 
69  public function getPhpUploadLimitInBytes(): int
70  {
71  return $this->php_upload_limit_in_bytes;
72  }
73 
74  protected function canUploadLimitBeUsed(UploadHandler $upload_handler, ?int $limit_in_bytes): bool
75  {
76  if ($upload_handler->supportsChunkedUploads()) {
77  return true;
78  }
79 
80  return $limit_in_bytes <= $this->php_upload_limit_in_bytes;
81  }
82 }
canUploadLimitBeUsed(UploadHandler $upload_handler, ?int $limit_in_bytes)
getBestPossibleUploadLimitInBytes(UploadHandler $upload_handler, int $local_limit_in_bytes=null)
__construct(protected int $php_upload_limit_in_bytes, protected ?int $custom_global_upload_limit_in_bytes=null)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...