FileManagerController::actionFiles PHP Метод

actionFiles() публичный Метод

public actionFiles ( )
    public function actionFiles()
    {
        $json = array();
        if (!empty($_POST['directory'])) {
            $directory = Yii::app()->params['imagePath'] . 'data/' . str_replace('../', '', $_POST['directory']);
        } else {
            $directory = Yii::app()->params['imagePath'] . 'data/';
        }
        $allowed = array('.jpg', '.jpeg', '.png', '.gif');
        $files = glob(rtrim($directory, '/') . '/*');
        if ($files) {
            foreach ($files as $file) {
                if (is_file($file)) {
                    $ext = strrchr($file, '.');
                } else {
                    $ext = '';
                }
                if (in_array(strtolower($ext), $allowed)) {
                    $size = filesize($file);
                    $i = 0;
                    $suffix = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
                    while ($size / 1024 > 1) {
                        $size = $size / 1024;
                        $i++;
                    }
                    $json[] = array('filename' => basename($file), 'file' => substr($file, strlen(Yii::app()->params['imagePath'] . 'data/')), 'size' => round(substr($size, 0, strpos($size, '.') + 4), 2) . $suffix[$i]);
                }
            }
        }
        echo CJSON::encode($json);
    }