ILIAS  trunk Revision v11.0_alpha-1761-g6dbbfa7b760
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ILIAS\FileDelivery\Delivery\BaseDelivery Class Reference
+ Inheritance diagram for ILIAS\FileDelivery\Delivery\BaseDelivery:
+ Collaboration diagram for ILIAS\FileDelivery\Delivery\BaseDelivery:

Public Member Functions

 __construct (protected Services $http, protected ResponseBuilder $response_builder, protected ResponseBuilder $fallback_response_builder,)
 

Protected Member Functions

 saveAndClose (ResponseInterface $r, ?string $path_to_delete=null)
 
 setGeneralHeaders (ResponseInterface $r, string $uri, string $mime_type, string $file_name, Disposition $disposition=Disposition::INLINE)
 

Protected Attributes

const MIME_TYPE_MAP = __DIR__ . '/../../../FileUpload/src/mime_type_map.php'
 
array $mime_type_map
 

Detailed Description

Author
Fabian Schmid fabia.nosp@m.n@sr.nosp@m..solu.nosp@m.tion.nosp@m.s

Definition at line 31 of file BaseDelivery.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\FileDelivery\Delivery\BaseDelivery::__construct ( protected Services  $http,
protected ResponseBuilder  $response_builder,
protected ResponseBuilder  $fallback_response_builder 
)

Definition at line 37 of file BaseDelivery.php.

41  {
42  if (is_readable(self::MIME_TYPE_MAP)) {
43  $map = include self::MIME_TYPE_MAP;
44  }
45  $this->mime_type_map = $map ?? [];
46  }

Member Function Documentation

◆ saveAndClose()

ILIAS\FileDelivery\Delivery\BaseDelivery::saveAndClose ( ResponseInterface  $r,
?string  $path_to_delete = null 
)
protected

Definition at line 48 of file BaseDelivery.php.

References ILIAS\FileDelivery\http(), and null.

Referenced by ILIAS\FileDelivery\Delivery\LegacyDelivery\deliver(), and ILIAS\FileDelivery\Delivery\StreamDelivery\deliver().

51  : never {
52  $sender = function () use ($r): void {
53  $this->http->saveResponse($r);
54  $this->http->sendResponse();
55  $this->http->close();
56  };
57 
58  if ($path_to_delete !== null && file_exists($path_to_delete)) {
59  ignore_user_abort(true);
60  set_time_limit(0);
61  ob_start();
62 
63  $sender();
64 
65  ob_flush();
66  ob_end_flush();
67  flush();
68 
69  unlink($path_to_delete);
70  } else {
71  $sender();
72  }
73  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
static http()
Fetches the global http state from ILIAS.
$r
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setGeneralHeaders()

ILIAS\FileDelivery\Delivery\BaseDelivery::setGeneralHeaders ( ResponseInterface  $r,
string  $uri,
string  $mime_type,
string  $file_name,
Disposition  $disposition = Disposition::INLINE 
)
protected

Definition at line 75 of file BaseDelivery.php.

References ILIAS\FileDelivery\Delivery\$disposition, $r, ILIAS\StaticURL\Response\Response\ResponseHeader\CACHE_CONTROL, ILIAS\StaticURL\Response\Response\ResponseHeader\CONTENT_DISPOSITION, ILIAS\StaticURL\Response\Response\ResponseHeader\CONTENT_TYPE, and ILIAS\StaticURL\Response\Response\ResponseHeader\EXPIRES.

Referenced by ILIAS\FileDelivery\Delivery\LegacyDelivery\deliver(), ILIAS\FileDelivery\Delivery\StreamDelivery\deliver(), and ILIAS\FileDelivery\Delivery\StreamDelivery\deliverFromToken().

81  : ResponseInterface {
82  $r = $r->withHeader('X-ILIAS-FileDelivery-Method', $this->response_builder->getName());
84  $r = $r->withHeader(
86  $disposition->value . '; filename="' . $file_name . '"'
87  );
88  $r = $r->withHeader(ResponseHeader::CACHE_CONTROL, 'max-age=31536000, immutable, private');
89  $r = $r->withHeader(
91  date("D, j M Y H:i:s", strtotime('+5 days')) . " GMT"
92  );
93 
94  return $r;
95  }
$r
+ Here is the caller graph for this function:

Field Documentation

◆ $mime_type_map

array ILIAS\FileDelivery\Delivery\BaseDelivery::$mime_type_map
protected

Definition at line 35 of file BaseDelivery.php.

◆ MIME_TYPE_MAP

const ILIAS\FileDelivery\Delivery\BaseDelivery::MIME_TYPE_MAP = __DIR__ . '/../../../FileUpload/src/mime_type_map.php'
protected

Definition at line 33 of file BaseDelivery.php.


The documentation for this class was generated from the following file: