ILIAS  trunk Revision v11.0_alpha-1723-g8e69f309bab
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
UploadLimitResolver.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
26 
44 {
45  public function __construct(
46  protected PhpUploadLimit $php_upload_limit,
47  protected GlobalUploadLimit $global_upload_limit
48  ) {
49  }
50 
52  UploadHandler $upload_handler,
53  ?int $local_limit_in_bytes = null
54  ): int {
55  if (null !== $local_limit_in_bytes && $this->canUploadLimitBeUsed($upload_handler, $local_limit_in_bytes)) {
56  return $local_limit_in_bytes;
57  }
58 
59  $global_upload_limit_in_bytes = $this->global_upload_limit->getGlobalUploadLimitInBytes();
60 
61  if (null !== $global_upload_limit_in_bytes &&
62  $this->canUploadLimitBeUsed($upload_handler, $global_upload_limit_in_bytes)
63  ) {
64  return $global_upload_limit_in_bytes;
65  }
66 
67  return $this->getPhpUploadLimitInBytes();
68  }
69 
70  public function getPhpUploadLimitInBytes(): int
71  {
72  return $this->php_upload_limit->getPhpUploadLimitInBytes();
73  }
74 
75  protected function canUploadLimitBeUsed(UploadHandler $upload_handler, ?int $limit_in_bytes): bool
76  {
77  if ($upload_handler->supportsChunkedUploads()) {
78  return true;
79  }
80 
81  return $limit_in_bytes <= $this->getPhpUploadLimitInBytes();
82  }
83 }
canUploadLimitBeUsed(UploadHandler $upload_handler, ?int $limit_in_bytes)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
getBestPossibleUploadLimitInBytes(UploadHandler $upload_handler, ?int $local_limit_in_bytes=null)
__construct(protected PhpUploadLimit $php_upload_limit, protected GlobalUploadLimit $global_upload_limit)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...