function UnpackFileArchive($strfile, $path_to) { global $APPLICATION; $res = true; $arcname = CTempFile::GetFileName(md5(uniqid(rand(), true)) . '.tar.gz'); CheckDirPath($arcname); if (file_put_contents($arcname, $strfile) !== false) { include_once dirname(__FILE__) . '/tar_gz.php'; $ob = new CArchiver($arcname); CheckDirPath($_SERVER['DOCUMENT_ROOT'] . $path_to); $res = $ob->extractFiles($_SERVER['DOCUMENT_ROOT'] . $path_to); if (!$res && is_object($APPLICATION)) { $arErrors = $ob->GetErrors(); if (count($arErrors)) { $strError = ""; foreach ($arErrors as $error) { $strError .= $error[1] . "<br>"; } $e = new CApplicationException($strError); $APPLICATION->ThrowException($e); } } } return $res; }
} } COption::SetOptionString('fileman', 'default_edit_groups', $sGroups); $archive_step_time = intVal($_POST['archive_step_time']); if ($archive_step_time <= 0) { $archive_step_time = 30; } COption::SetOptionString($module_id, "archive_step_time", $archive_step_time); } if ($REQUEST_METHOD == "GET" && isset($_GET['load_dic']) && $USER->CanDoOperation('fileman_edit_all_settings') && COption::GetOptionString($module_id, "use_editor_3", "N") == "Y") { if (isValidLang($_GET['load_dic'])) { $l_id = $_GET['load_dic']; require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/tar_gz.php"; $indexedDicPath = $_SERVER['DOCUMENT_ROOT'] . $gzDicsRelPath . '/' . $l_id . '.tar.gz'; $oArchiver = new CArchiver($indexedDicPath); if ($oArchiver->extractFiles($_SERVER['DOCUMENT_ROOT'] . $dicsRelPath . '/' . $l_id)) { COption::SetOptionString($module_id, $l_id . "_dic_indexed", "Y"); } } } $aTabs = array(array("DIV" => "edit1", "TAB" => GetMessage("MAIN_TAB_SET"), "ICON" => "fileman_settings", "TITLE" => GetMessage("MAIN_TAB_TITLE_SET")), array("DIV" => "edit2", "TAB" => GetMessage("MAIN_TAB_VISUAL_EDITOR"), "ICON" => "fileman_settings", "TITLE" => GetMessage("MAIN_TAB_TITLE_VIS_ED_SET")), array("DIV" => "edit5", "TAB" => GetMessage("MAIN_TAB_MEDIALIB"), "ICON" => "fileman_settings", "TITLE" => GetMessage("FILEMAN_SEC_MEDIALIB"))); if ($USER->isAdmin()) { $rightsTab = array("DIV" => "edit3", "TAB" => GetMessage("MAIN_TAB_RIGHTS"), "ICON" => "fileman_settings", "TITLE" => GetMessage("MAIN_TAB_TITLE_RIGHTS")); $aTabs[] = $rightsTab; } $siteList = array(); $rsSites = CSite::GetList($by = "sort", $order = "asc", array()); $i = 0; while ($arRes = $rsSites->Fetch()) { $siteList[$i]["ID"] = $arRes["ID"]; $siteList[$i]["NAME"] = $arRes["NAME"];
$bConvert = isset($_REQUEST['convert_encoding']) && $_REQUEST['convert_encoding'] == 'Y'; if ($butf && $bConvert && (!isset($encoding) || !in_array($encoding, $arrTransEncoding))) { $strErrorMessage .= GetMessage('TR_ERROR_ENCODING') . '<br>'; } $tempLanguagePathNoRoot = '/bitrix/tmp/translate/' . time() . '/'; $tempLanguagePath = $_SERVER["DOCUMENT_ROOT"] . $tempLanguagePathNoRoot; if (strlen($strErrorMessage) <= 0) { CheckDirPath($tempLanguagePath); if (!file_exists($tempLanguagePath) || !is_dir($tempLanguagePath)) { $strErrorMessage .= GetMessage('TR_ERROR_CREATE_TEMP_FOLDER', array('%PATH%' => $tempLanguagePath)) . '<br>'; } } if (strlen($strErrorMessage) <= 0) { $oArc = new CArchiver($_FILES['tarfile']['tmp_name'], true); $oArc->_strSeparator = '|'; $oArc->extractFiles($tempLanguagePath); if (count($oArc->_arErrors) > 0) { $strErrorMessage .= ": "; foreach ($oArc->_arErrors as $e) { $strErrorMessage .= $e[1] . ", "; } } } if (strlen($strErrorMessage) <= 0) { $bConvert = isset($_REQUEST['localize_encoding']) && $_REQUEST['localize_encoding'] == 'Y'; if ($bConvert) { if ($butf) { $strEncodingIn = $encoding; $strEncodingOut = 'utf-8'; } else { $strEncodingIn = 'utf-8';
$txt = nl2br($strLog); } elseif ($res == 2) { $txt = $status; $script = "<script>GoToPage(\"" . $this_script_name . "?action=LOAD&edition=" . urlencode($_REQUEST['edition']) . "&url=" . urlencode($url) . "&lang=" . urlencode(LANG) . "&LICENSE_KEY=" . urlencode($_REQUEST["LICENSE_KEY"]) . "&action_next=" . urlencode($_REQUEST["action_next"]) . "&xz=" . rand(0, 32000) . "\");</script>\n"; } else { $txt = $status; $script = "<script>GoToPage(\"" . $this_script_name . "?action=UNPACK&by_step=Y&filename=" . urlencode(basename($strRequestedUrl)) . "&lang=" . urlencode(LANG) . "&xz=" . rand(0, 32000) . "\");</script>\n"; } $ar = array('FORM' => $form, 'TITLE' => LoaderGetMessage("LOADER_MENU_LOAD"), 'HEAD' => LoaderGetMessage("LOADER_MENU_LOAD"), 'TEXT' => $txt, 'BOTTOM' => '<input type="button" value=" ' . LoaderGetMessage("LOADER_BACK") . ' " onclick="document.location=\'' . $this_script_name . '?action=LIST&lang=' . LANG . '\'">'); /*********************************************************************/ } elseif ($strAction == "UNPACK") { /*********************************************************************/ // $iNumDistrFiles = 8000; SetCurrentStatus(LoaderGetMessage("LOADER_UNPACK_ACTION")); $oArchiver = new CArchiver($_SERVER["DOCUMENT_ROOT"] . "/" . $_REQUEST["filename"], true); $tres = $oArchiver->extractFiles($_SERVER["DOCUMENT_ROOT"]); SetCurrentProgress($oArchiver->iCurPos, $oArchiver->iArchSize, False); $txt = $status; if ($tres) { if (!$oArchiver->bFinish) { $script = "<script>GoToPage(\"" . $this_script_name . "?action=UNPACK&filename=" . urlencode(basename($oArchiver->_strArchiveName)) . "&by_step=Y&seek=" . $oArchiver->iCurPos . "\");</script>\n"; } else { $res = unlink($_SERVER["DOCUMENT_ROOT"] . "/" . $_REQUEST["filename"]) && unlink(__FILE__); @unlink($_SERVER["DOCUMENT_ROOT"] . "/" . $_REQUEST["filename"] . '.log'); @unlink($_SERVER["DOCUMENT_ROOT"] . "/" . $_REQUEST["filename"] . '.tmp'); @unlink($_SERVER['DOCUMENT_ROOT'] . '/restore.php'); $strInstFile = "index.php"; if (!$res) { SetCurrentStatus(LoaderGetMessage("LOADER_UNPACK_DELETE")); } elseif (!file_exists($_SERVER["DOCUMENT_ROOT"] . "/" . $strInstFile)) { SetCurrentStatus(LoaderGetMessage("LOADER_UNPACK_UNKNOWN"));
{ $strError .= GetMessage("MAIN_WIZARD_LOAD_ERROR_LOAD"); break; } elseif(GetFileExtension(strtolower($_FILES["wizardFile"]["name"])) != "gz") { $strError .= GetMessage("MAIN_WIZARD_TAR_GZ"); break; } $wizardPath = $_SERVER["DOCUMENT_ROOT"].CWizardUtil::GetRepositoryPath(); require_once($_SERVER["DOCUMENT_ROOT"]."/freetrix/modules/main/classes/general/tar_gz.php"); $oArchiver = new CArchiver($_FILES["wizardFile"]["tmp_name"]); if (!$oArchiver->extractFiles($wizardPath)) { $strError .= GetMessage("MAIN_WIZARD_IMPORT_ERROR"); $arErrors = &$oArchiver->GetErrors(); if(count($arErrors)>0) { $strError .= ":<br>"; foreach ($arErrors as $value) $strError .= "[".$value[0]."] ".$value[1]."<br>"; } else $strError .= ".<br>"; break; }
{ if(strlen($tpath)>0 && file_exists($tpath) && is_file($tpath)) $DATA_FILE_NAME = $tpath; } if(strlen($DATA_FILE_NAME)<=0) $strError .= GetMessage("MAIN_T_EDIT_IMP_FILE_NA")."<br>"; if(strlen($ID)<=0) $strError .= GetMessage("MAIN_T_EDIT_IMP_ID_NA")."<br>"; if(strlen($strError)<=0) { require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/tar_gz.php"); $oArchiver = new CArchiver($DATA_FILE_NAME); $tres = $oArchiver->extractFiles($_SERVER["DOCUMENT_ROOT"].BX_PERSONAL_ROOT."/templates/".$ID); if($tres) $strOK .= str_replace("#FILE#", $tpath, GetMessage("MAIN_T_EDIT_IMP_OK"))."<br>"; else { $strError .= GetMessage("MAIN_T_EDIT_IMP_ERR"); $arErrors = &$oArchiver->GetErrors(); if(count($arErrors)>0) { $strError .= ":<br>"; foreach ($arErrors as $value) $strError .= "[".$value[0]."] ".$value[1]."<br>"; } else $strError .= ".<br>"; }
public function extractGem($sGemName) { require_once $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/classes/general/tar_gz.php"; $sArchiveName = $this->getGemArchieveNameForDownload($sGemName); if (!is_readable($sArchiveName)) { throw new Exception('Gem archieve for ' . $sGemName . ' not found in ' . $sArchiveName); } $sToFolder = dirname(__FILE__) . '/../../gems/'; $oArchiver = new CArchiver($sArchiveName); $bResult = $oArchiver->extractFiles($sToFolder); $arErrors =& $oArchiver->GetErrors(); $aErrors = array(); if (count($arErrors) > 0) { foreach ($arErrors as $value) { $aErrors[] = "[" . $value[0] . "] " . $value[1]; } } if (!empty($aErrors)) { throw new Exception('Errors during extracting Gem "' . $sGemName . '"! ' . implode(PHP_EOL, $aErrors)); } $this->convertGemCharset(dirname(__FILE__) . '/../../gems/' . $sGemName . '/', $bToSite = true); return $sToFolder . $sGemName . '/'; }
<td colspan="6" class="tableborder1" height="1"></td> </tr> </table> <? } elseif($Step == 2) { $arc_name = htmlspecialchars(@$_REQUEST["arc_name"]); $max_exec_time = intVal(@$_REQUEST["time"]); $pos = intVal(@$_REQUEST["pos"]); if ($pos < 0) $pos = 0; $oArc = new CArchiver($_SERVER["DOCUMENT_ROOT"]."/".$arc_name, true, START_EXEC_TIME, $max_exec_time, $pos); if(!$oArc->extractFiles($_SERVER["DOCUMENT_ROOT"]."/") && $oArc->end_time) { $pos = $oArc->getFilePos(); ?> <input type="hidden" name="time" id="time_id" value="<?php echo $max_exec_time; ?> "> <input type="hidden" name="pos" id="pos_id" value="<?php echo $pos; ?> "> <input type="hidden" name="arc_name" id="arc_name_id" value="<?php echo $arc_name; ?>