ILIAS
release_10 Revision v10.1-43-ga1241a92c2f
◀ ilDoc Overview
XAccelResponseBuilder.php
Go to the documentation of this file.
1
<?php
2
19
declare(strict_types=1);
20
21
namespace
ILIAS\FileDelivery\Delivery\ResponseBuilder
;
22
23
use
Psr\Http\Message\ResponseInterface
;
24
use
ILIAS\Filesystem\Stream\FileStream
;
25
use
Psr\Http\Message\ServerRequestInterface
;
26
30
class
XAccelResponseBuilder
implements
ResponseBuilder
31
{
32
private
const
DATA
=
'data'
;
33
private
const
SECURED_DATA
=
'secured-data'
;
34
private
const
X_ACCEL_REDIRECT_HEADER
=
'X-Accel-Redirect'
;
35
36
public
function
getName
(): string
37
{
38
return
'x-accel'
;
39
}
40
41
public
function
buildForStream
(
42
ServerRequestInterface
$request,
43
ResponseInterface
$response
,
44
FileStream
$stream,
45
): ResponseInterface {
46
$path_to_file
= $stream->getMetadata(
'uri'
);
47
if
(str_starts_with((
string
)
$path_to_file
,
'./'
.
self::DATA
.
'/'
)) {
48
$path_to_file = str_replace(
49
'./'
.
self::DATA
.
'/'
,
50
'/'
. self::SECURED_DATA
51
.
'/'
,
52
$path_to_file
53
);
54
}
55
56
return
$response->withHeader(
57
self::X_ACCEL_REDIRECT_HEADER,
58
$path_to_file
59
);
60
}
61
62
public
function
supportPartial
(): bool
63
{
64
return
true
;
65
}
66
67
public
function
supportStreaming
(): bool
68
{
69
return
true
;
70
}
71
72
public
function
supportFileDeletion
(): bool
73
{
74
return
false
;
75
}
76
77
public
function
supportsInlineDelivery
(): bool
78
{
79
return
true
;
80
}
81
82
public
function
supportsAttachmentDelivery
(): bool
83
{
84
return
true
;
85
}
86
}
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder
Definition:
XAccelResponseBuilder.php:30
ILIAS\FileDelivery\Delivery\ResponseBuilder
Definition:
PHPResponseBuilder.php:21
$response
$response
Definition:
xapitoken.php:90
ILIAS\MetaData\Paths\Filters\DATA
Definition:
FilterType.php:31
ILIAS\FileDelivery\Delivery\ResponseBuilder\ResponseBuilder
Definition:
ResponseBuilder.php:30
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\supportsInlineDelivery
supportsInlineDelivery()
Definition:
XAccelResponseBuilder.php:77
ServerRequestInterface
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\supportFileDeletion
supportFileDeletion()
Definition:
XAccelResponseBuilder.php:72
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\buildForStream
buildForStream(ServerRequestInterface $request, ResponseInterface $response, FileStream $stream,)
Definition:
XAccelResponseBuilder.php:41
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\SECURED_DATA
const SECURED_DATA
Definition:
XAccelResponseBuilder.php:33
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\getName
getName()
Definition:
XAccelResponseBuilder.php:36
ILIAS\FileDelivery\Delivery\$path_to_file
string $path_to_file
Definition:
Delivery.php:47
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\supportStreaming
supportStreaming()
Definition:
XAccelResponseBuilder.php:67
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\X_ACCEL_REDIRECT_HEADER
const X_ACCEL_REDIRECT_HEADER
Definition:
XAccelResponseBuilder.php:34
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\DATA
const DATA
Definition:
XAccelResponseBuilder.php:32
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\supportsAttachmentDelivery
supportsAttachmentDelivery()
Definition:
XAccelResponseBuilder.php:82
ResponseInterface
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\supportPartial
supportPartial()
Definition:
XAccelResponseBuilder.php:62
FileStream
ILIAS\Filesystem\Stream\FileStream
The base interface for all filesystem streams.
Definition:
FileStream.php:31
components
ILIAS
FileDelivery
src
Delivery
ResponseBuilder
XAccelResponseBuilder.php
Generated on Wed Sep 10 2025 15:15:37 for ILIAS by
1.8.13 (using
Doxyfile
)