static function findByDir($dir, $isInfo = true, $isHidden = true) { $hidden = false; if ($isHidden) { $hidden = Cfg::get('hidden', false); } $dir = ltrim($dir, '/'); $path = Lib::gpath($dir); $res = array(); $d = opendir($path); if ($d) { $files = array(); while (($e = readdir($d)) !== false) { if ($e == '.' || $e == '..') { continue; } if ($hidden == false || !preg_match($hidden, $e)) { $file = BasefileModel::createFromPath($dir . '/' . $e, $isInfo); if ($file) { if ($file->type == 'folder') { $res[] = $file; } else { $files[] = $file; } } } } $res = array_merge($res, $files); } return $res; }
public function upload() { try { $folder = BasefileModel::createFromPath($this->params->dir); if ($folder) { if ($_FILES['file']['error'] == 0) { if ($folder->upload($_FILES['file'], $this->params->name)) { return new Response($folder->getChildren()); } else { return new ResponseError(gettext("Не удалось загрузить файл.")); } } else { switch ($_FILES['file']['error']) { case UPLOAD_ERR_INI_SIZE: case UPLOAD_ERR_FORM_SIZE: return new ResponseError(gettext("Размер принятого файла превысил максимально допустимый размер.")); case UPLOAD_ERR_PARTIAL: return new ResponseError(gettext("Загружаемый файл был получен только частично.")); case UPLOAD_ERR_NO_FILE: return new ResponseError(gettext("Не удалось загрузить файл.")); } } } else { return new ResponseError(gettext("Не найдена директория.")); } } catch (Exception $ex) { Log::exception($ex); return new ResponseError(gettext("Не возможно загрузить в эту директорию.")); } }