Your IP : 216.73.216.170


Current Path : /home/bitrix/ext_www/rgc.yacl.site/download/
Upload File :
Current File : /home/bitrix/ext_www/rgc.yacl.site/download/index.php

<?
//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;
    }
}