if (!is_array($arFilter["ID"])) { $IDs = explode(" ", $arFilter["ID"]); $arFilter["ID"] = array(); foreach ($IDs as $id) { $id = intval(trim($id)); if ($id > 0) { $arFilter["ID"][] = $id; } } } if (is_array($arFilter["ID"]) && count($arFilter["ID"]) <= 0) { unset($arFilter["ID"]); } $sendfile = false; if (file_exists($_SERVER['DOCUMENT_ROOT'] . $filename)) { $sendfile = CControllerTools::PackFileArchive($_SERVER['DOCUMENT_ROOT'] . $filename); if ($sendfile !== false) { $arParams = array('FILE' => $sendfile, 'PATH_TO' => $path_to); $runQueue = array(); $dbr_members = CControllerMember::GetList(array("ID" => "ASC"), $arFilter); while ($ar_member = $dbr_members->Fetch()) { $runQueue[$ar_member["ID"]] = $ar_member["NAME"]; $cnt++; if ($maxSafeCount !== false && $cnt > $maxSafeCount) { $runQueue = array(); break; } } foreach ($runQueue as $memberId => $memberName) { $cnt++; echo BeginNote();
case 'sendfile': set_time_limit(1200); $arVars = Array( 'command_id' => $oRequest->arParameters['command_id'], 'sendfile' => 'Y', ); $oClientRequest = new CControllerClientRequestTo('query', $arVars); $oClientRequest->session_id = $oRequest->session_id; $oClientResponse = $oClientRequest->Send(); if(is_object($oClientResponse) && $oClientResponse->Check()) { if($oClientResponse->OK()) { if (CControllerTools::UnpackFileArchive($oClientResponse->arParameters['file'], $oClientResponse->arParameters['path_to'])) { $oResponse->status = "200 OK"; $command = $oClientResponse->arParameters['command']; if (strlen($command) > 0 && CControllerClient::RunCommand($command, $oResponse, $oClientResponse) === false) { $oResponse->status = "450 Execution error"; } } else { $oResponse->status = "451 Copy File error"; $e = $APPLICATION->GetException(); if(is_object($e)) $oResponse->text = $e->GetString(); }