Your IP : 216.73.216.170
<?
//if (!$_SERVER["DOCUMENT_ROOT"]) {
// $_SERVER["DOCUMENT_ROOT"] = realpath(__DIR__);
//} else {
// die ('Script for console only');
//}
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
$helper = new HighloadBlockHelper('FileDownloadLog');
$fields = [
'UF_USER_ID' => $USER->IsAuthorized() ? $USER->GetID() : 0,
'UF_USER_NAME' => $USER->IsAuthorized() ? $USER->GetLastName() . ' ' . $USER->GetFirstName() . '' . $USER->GetSecondName() : 'unknown',
'UF_TIME' => \Bitrix\Main\Type\DateTime::createFromTimestamp(time()),
'UF_IP' => $_SERVER['REMOTE_ADDR'],
'UF_LINK' => $APPLICATION->GetCurUri(),
];
if (!$USER->IsAuthorized()) {
$fields['UF_SUCCESS'] = false;
$helper->add($fields);
$APPLICATION->AuthForm("У вас нет права доступа к данному файлу.");
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_before.php");
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
} else {
$fileId = intval($_GET['id']);
$fields['UF_FILE_ID'] = $fileId;
$externalId = htmlspecialchars($_GET['xml']);
$realFile = \Bitrix\Main\FileTable::getList([
'filter' => ['=ID' => $fileId, '=EXTERNAL_ID' => $externalId],
'select' => ['*']
])->fetch();
if (!empty($realFile)) {
$fields['UF_SUCCESS'] = true;
$helper->add($fields);
$fileName = $_SERVER['DOCUMENT_ROOT'] . CFile::GetPath($realFile['ID']);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $realFile['ORIGINAL_NAME']);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . $realFile['FILE_SIZE']);
echo file_get_contents($fileName);
} else {
$fields['UF_SUCCESS'] = false;
$helper->add($fields);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");
CHTTP::SetStatus("404 Not Found");
@define("ERROR_404","Y");
ShowError('Ошибка 404! Файл не найден!');
return;
}
}