Current Path : /home/bitrix/ext_www/el.sanatorio.yacl.site/download/ |
Current File : /home/bitrix/ext_www/el.sanatorio.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=' . rawurlencode($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; } }