public function initInfo() { parent::initInfo(); $path = Cfg::get('baseDir') . $this->id; Log::debug($path); $this->lastmod = @filemtime($path); $this->size = sprintf("%u", filesize($path)); if ($this->type != 'folder') { $pos = strrpos($this->name, "."); if ($pos) { $this->cls = substr($this->name, $pos + 1); $this->type = $this->getTypeFromExp($this->cls); } } }
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("Не возможно загрузить в эту директорию.")); } }
static function mkdir($path, $name, $mode = false) { $path = trim($path, ' /\\'); $pachFolder = Cfg::get('baseDir') . '/' . $path; $mode = intval(Cfg::get('mkdirmode', 0666, $mode), 8); if (mkdir($pachFolder . '/' . $name, $mode)) { chmod($pachFolder . '/' . $name, $mode); return BasefileModel::createFromPathAndName($path, $name); } return false; }