isInternal ? $this->uploadByInternal() : $this->uploadByExternal(); } /** * 外部上传(指用户上传,需验证文件类型、大小) * @return bool */ private function uploadByExternal() { // 上传目录 $uplodDir = WEB_PATH . 'uploads'; // 验证文件并上传 $info = $this->file->validate([ 'size' => 4 * 1024 * 1024, 'ext' => 'jpg,jpeg,png,gif' ])->move($uplodDir, $this->fileName); if (empty($info)) { $this->error = $this->file->getError(); return false; } return true; } /** * 内部上传(指系统上传,信任模式) * @return bool */ private function uploadByInternal() { // 上传目录 $uplodDir = WEB_PATH . 'uploads'; // 要上传图片的本地路径 $realPath = $this->getRealPath(); if (!rename($realPath, "{$uplodDir}/$this->fileName")) { $this->error = 'upload write error'; return false; } return true; } /** * 删除文件 * @param $fileName * @return bool|mixed */ public function delete($fileName) { // 文件所在目录 $filePath = WEB_PATH . "uploads/{$fileName}"; return !file_exists($filePath) ?: unlink($filePath); } /** * 返回文件路径 * @return mixed */ public function getFileName() { return $this->fileName; } }