if ($p !== false) { $cur_pos = intval(substr($bytes, 0, $p)); } } include $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; if (CModule::IncludeModule("statistic")) { if ($cur_pos <= 0) { if (strlen($event1) <= 0 && strlen($event2) <= 0) { $event1 = "download"; $event2 = $file; } $e = $event1 . "/" . $event2 . "/" . $event3; if (!in_array($e, $_SESSION["DOWNLOAD_EVENTS"])) { $w = CStatEvent::GetByEvents($event1, $event2); $wr = $w->Fetch(); $z = CStatEvent::GetEventsByGuest($_SESSION["SESS_GUEST_ID"], $wr["EVENT_ID"], $event3, $DOWNLOAD_EVENT_INTERVAL); if (!($zr = $z->Fetch())) { CStatistic::Set_Event($event1, $event2, $event3); $_SESSION["DOWNLOAD_EVENTS"][] = $e; } } } } ob_end_clean(); session_write_close(); while (list($key, $value) = each($arrHOSTS)) { $max_weight += intval($key); } mt_srand((double) microtime() * 1000000); $rand = $max_weight * (rand() / getrandmax()); reset($arrHOSTS);
if (intval($cur_pos) > 0) { CHTTP::SetStatus("206 Partial Content"); } else { session_cache_limiter(''); session_start(); if (CModule::IncludeModule("statistic") && intval($_SESSION["SESS_SEARCHER_ID"]) <= 0) { if (strlen($event1) <= 0 && strlen($event2) <= 0) { $event1 = "download"; $event2 = "private"; $event3 = $file; } $e = $event1 . "/" . $event2 . "/" . $event3; if (!in_array($e, $_SESSION["DOWNLOAD_EVENTS"])) { $w = CStatEvent::GetByEvents($event1, $event2); $wr = $w->Fetch(); $z = CStatEvent::GetEventsByGuest($_SESSION["SESS_GUEST_ID"], $wr["EVENT_ID"], $event3, 21600); if (!($zr = $z->Fetch())) { CStatistic::Set_Event($event1, $event2, $event3); $_SESSION["DOWNLOAD_EVENTS"][] = $e; } } } ob_end_clean(); session_write_close(); CHTTP::SetStatus("200 OK"); } header("Content-Type: application/force-download; name=\"" . $file . "\""); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . ($size - $cur_pos + 1)); header("Accept-Ranges: bytes"); header("Content-Range: bytes " . $cur_pos . "-" . $size . "/" . $filesize);