1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
file.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Bizproc\Controller;
4
5
use Bitrix\Main;
6
use Bitrix\Main\Engine\Response\BFile;
7
use Bitrix\Main\Error;
8
9
class
File
extends
Base
10
{
11
private
const
TOKEN_SALT =
'bizproc.file.show'
;
12
13
public
function
configureActions
():
array
14
{
15
$configureActions = parent::configureActions();
16
$configureActions[
'show'
] = [
17
'-prefilters'
=> [
18
Main\Engine\ActionFilter\Csrf::class,
19
Main\Engine\ActionFilter\Authentication::class,
20
],
21
'+prefilters'
=> [
22
new
Main\Engine\ActionFilter\CloseSession
(),
23
]
24
];
25
26
return
$configureActions;
27
}
28
29
public
function
showAction
($token)
30
{
31
[$fileId] = self::extractToken($token);
32
$file =
null
;
33
34
if
($fileId)
35
{
36
$file = \CFile::getFileArray($fileId);
37
}
38
39
if
(!$file)
40
{
41
$this->
addError
(
new
Error
(
'No file'
));
42
return
null
;
43
}
44
45
return
BFile::createByFileData
($file);
46
}
47
48
public
static
function
getPublicLink
(
int
$fileId): string
49
{
50
return
Main\Engine\UrlManager::getInstance
()->create(
51
'bizproc.file.show'
,
52
[
53
'token'
=> static::generateToken($fileId),
54
],
55
true
56
)->getUri();
57
}
58
59
private
static
function
generateToken(
int
$fileId)
60
{
61
$signer =
new
Main\Security\Sign\Signer
;
62
return
$signer->
sign
((
string
) $fileId, self::TOKEN_SALT);
63
}
64
65
private
static
function
extractToken(
string
$token):
array
66
{
67
$signer =
new
Main\Security\Sign\Signer
;
68
69
try
70
{
71
$unsigned = $signer->unsign($token, self::TOKEN_SALT);
72
$result
= [$unsigned];
73
}
74
catch
(\Exception $e)
75
{
76
$result
= [
null
];
77
}
78
79
return
$result
;
80
}
81
}
Bitrix\Bizproc\BaseType\Base
Определения
base.php:14
Bitrix\Bizproc\BaseType\Base\addError
static addError($error)
Определения
base.php:278
Bitrix\Bizproc\Controller\File\getPublicLink
static getPublicLink(int $fileId)
Определения
file.php:48
Bitrix\Bizproc\Controller\File\showAction
showAction($token)
Определения
file.php:29
Bitrix\Bizproc\Controller\File\configureActions
configureActions()
Определения
file.php:13
Bitrix\Main\Engine\ActionFilter\CloseSession
Определения
closesession.php:13
Bitrix\Main\Engine\Response\BFile\createByFileData
static createByFileData(array $file, $name=null)
Определения
bfile.php:23
Bitrix\Main\Engine\UrlManager\getInstance
static getInstance()
Определения
urlmanager.php:28
Bitrix\Main\Error
Определения
error.php:15
Bitrix\Main\Security\Sign\Signer
Определения
signer.php:14
Bitrix\Main\Security\Sign\Signer\sign
sign($value, $salt=null)
Определения
signer.php:122
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
$result
$result
Определения
get_property_values.php:14
Bitrix\Main\File
Определения
Image.php:9
bitrix
modules
bizproc
lib
controller
file.php
Создано системой
1.14.0