ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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 }

References ILIAS\FileDelivery\Delivery\BaseDelivery\MIME_TYPE_MAP.

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.

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 }
static http()
Fetches the global http state from ILIAS.

◆ 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.

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

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

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