function checkPath($szTestPath) { $fs = DAO::getInstance('fs'); $szErrorMessage = ''; if (!file_exists($szTestPath)) { $szErrorMessage .= 'ѕуть не найден' . "\r\n"; } else { if (!$fs->pathInPath(FILE_PATH, $szTestPath)) { $szErrorMessage .= 'ѕуть нарушает систему безопасности' . "\r\n"; } } return $szErrorMessage; }
/** * Возвращает имена классов всех контролов, с которыми в данный момент работает CConfig * @return array */ public static function selectAll() { // Грузим все файлы в папке контролов $files = DAO::getInstance('fs')->getFileList(CCONFIG_CONTROLS_PATH); $result = array(); foreach ($files as $row) { try { $row = basename($row, '.php'); $result[$row] = self::loadControl($row); } catch (Exception $e) { } } // Дополняем классами, записанными в реестре $register = new SystemRegister('Applications/cconfig/user_control_path'); $paths = SystemRegisterSample::selectChild($register->getId()); foreach ($paths as $row) { try { $result[$row['name']] = self::loadControl($row['name']); } catch (Exception $e) { } } return $result; }
/** * @desc Замеряет размер указанного объекта * @return */ function folderSize($basePath) { $fs = DAO::getInstance('fs'); // проверяем путь на доступ $szBasePath = toCanonical(realpath(FILE_PATH . $basePath)); $szErrorMessage = checkPath($szBasePath); if (empty($szErrorMessage)) { $nSize = $fs->getSize(toCanonical($szBasePath)); } else { $nSize = 0; } $aResult = array('error' => $szErrorMessage, 'size' => $nSize); return $aResult; }
<?php use Extasy\CMS; require_once dirname(__FILE__) . '/_lib/loader.php'; $fs = DAO::getInstance('fs'); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML id="document"> <?php if (isset($_POST['basepath']) && !empty($_FILES['file']) && is_uploaded_file($_FILES['file']['tmp_name'])) { $szPath = toCanonical(realpath(FILE_PATH . $_POST['basepath'])); $szErrorMessage = checkPath($szPath); if (empty($szErrorMessage)) { $fs->upload('file', $szPath . str_replace(' ', '', $_FILES['file']['name'])); $fs->chmod($szPath . str_replace(' ', '', $_FILES['file']['name']), 0777); ?> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </HEAD> <BODY BGCOLOR=#EEEEEE > <script> if (window.parent.ii != null) { window.parent.ii.inClosePopup(); }