public function DataAction($type = '') { if ($this->request->isPost()) { // Export if ($type == 'import') { $File = $this->FileRoot . trim($this->request->getPost('file')); if (!is_file($File)) { $this->response->redirect('Result/err'); } /* Remove Notes */ $content = file_get_contents($File); $content = preg_replace("/\n#\n# TABLE(.*)\\s#\n\n/i", "", $content); $sqls = array_filter(explode(";\n", $content)); foreach ($sqls as $sql) { $sql = trim($sql); if (!empty($sql)) { if ($this->db->execute($sql) == FALSE) { $this->response->redirect('Result/err'); } } } $this->response->redirect('Result/suc/SysDBBackup'); } elseif ($type == 'delete') { $File = new File(); $File->file_root = $this->FileRoot; $Files = json_decode($this->request->getPost('file')); if ($File->del('./', $Files)) { $this->response->redirect('Result/suc/SysDBRestore'); } else { $this->response->redirect('Result/err'); } } } }
/** * 上传头像 */ public function upload() { if (isset($_GET['userid']) && isset($GLOBALS['HTTP_RAW_POST_DATA'])) { // 根据用户id创建文件夹 $userid = intval($_GET['userid']); $avatardata = $GLOBALS['HTTP_RAW_POST_DATA']; } else { exit('0'); } $dir1 = ceil($userid / 10000); $dir2 = ceil($userid % 10000 / 1000); // 创建图片存储文件夹 $avatarfile = DATA_PATH . 'avatar/'; $dir = $avatarfile . $dir1 . '/' . $dir2 . '/' . $userid . '/'; if (!file_exists($dir)) { Folder::mk($dir); } $filename = $dir . $userid . '.zip'; File::write($filename, $avatardata); $archive = new PclZip($filename); if ($archive->extract(PCLZIP_OPT_PATH, $dir) == 0) { die("Error : " . $archive->errorInfo(true)); } // 判断文件安全,删除压缩包和非jpg图片 $avatararr = array('180x180.jpg', '30x30.jpg', '45x45.jpg', '90x90.jpg'); if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { if ($file !== '.' && $file !== '..') { if (!in_array($file, $avatararr)) { File::delete($dir . $file); } else { $info = @getimagesize($dir . $file); if (!$info || $info[2] != 2) { File::del($dir . $file); } } } } closedir($handle); } $this->db->where(array('userid' => $userid))->update(array('avatar' => 1)); exit('1'); }
/** * 删除 * DELETE /share/1 * @method DELETE_info * @author NewFuture */ public function DELETE_infoAction($id = 0) { $userid = $this->auth(); if (!($share = ShareModel::where('use_id', $userid)->field('url')->find(intval($id)))) { $this->response(0, '您无此分享文件'); } elseif (!($url = $share['url'])) { $this->response(0, '此共享已经删除'); } elseif ($share->set('url', '')->save()) { File::del($url); $this->response(1, '删除成功'); } else { $this->response(0, '删除失败'); } }
/** * 文件删除 * DELETE /file/1 * @method DELETE_info * @author NewFuture */ public function DELETE_infoAction($id = 0) { $userid = $this->auth(); $File = FileModel::where('use_id', '=', $userid)->field('url')->find($id); $response['status'] = 0; if (!($uri = $File['url'])) { $response['info'] = '没有找这个文件'; } elseif (!File::del($uri)) { $response['info'] = '删除出错'; } if ($File->update(['url' => '', 'status' => 0])) { $response['status'] = 1; $response['info'] = '已经删除'; } else { $response['info'] = '文件状态更新失败'; } $this->response = $response; }
/** * 清除文件夹下所有文件以及文件夹 * * @param string $dir 目录 * @return boolean */ public static function clear($path) { $path = self::path($path); if (!self::is_dir($path)) { return false; } if (!($handle = @opendir($path))) { return false; } while (false !== ($file = readdir($handle))) { if ('.' === $file || '..' === $file) { continue; } $filename = $path . '/' . $file; if (self::is_dir($filename)) { self::rm($filename); } elseif (File::is_file($filename)) { File::del($filename); } } @closedir($handle); return true; }
/** * (non-PHPdoc) * @see Cache::delete_value() */ protected function delete_value($key) { $file = $this->_path($key); return File::del($file); }