精华内容
下载资源
问答
  • 岁月,总是不经意中溜走,可我总也留不下它;总有一天,当我灵力枯竭时,我的世界也会随之坍塌,精神沉沦,直到我灵性中看到光,而那个的我还有没有可能还是我! 1、文件夹的创建: function createFolder(){ ...

    岁月,总是在不经意中溜走,可我总也留不下它;总有一天,当我灵力枯竭时,我的世界也会随之坍塌,精神沉沦,直到我灵性中看到光,而那个的我,还有没有可能是我呢!

    1、文件夹的创建:

    function createFolder(){
      if(request()->isPost()){
          $filePath = input("filePath"); //路径
          $dirName = input("newName");  //文件夹名称
          $dirPath = $filePath.'/'.$dirName;
          if(!file_exists($dirPath)){
             mkdir(ROOT_PATH.$dirPath,0777,true);
             return json(['code' => 200,"msg"=>"新建成功!"]);
          }
       }
       return json(['code' => 400,"msg"=>"请求错误!"]);
    }

    2、文件夹的重命名:

    public function reNameFolder(){
        if(request()->isAjax()){
             $path = input('filePath');
             $fileName = input('fileName');
             $file = iconv('UTF-8'
    展开全文
  • ThinkPHP5文件管理平台

    2021-05-26 19:32:38
    文件资料分类上传,可以直接拖拽上传和管理,快速查找
  • 基于tp5免费开源的后台管理系统
  • 该资源是用PHP的ThinkPHP5框架写的一个后台权限管理系统,里面test.sql是数据库文件
  • 1.为了方便在后台直接修改文件,增加了这个功能 2.这里我用的是filemanager这个插件,将这个插件放到根目录...4.在线文件管理器的代码: https://codechina.csdn.net/mo3408/file.git 5.在前台引入来就可以使用 ...

    1.为了方便在后台直接修改文件,增加了这个功能

    2.这里我用的是filemanager这个插件,将这个插件放到根目录或者其它位置都可以:

    3.实现的效果如下:

    4.在线文件管理器的代码:

    https://codechina.csdn.net/mo3408/file.git

    5.在前台引入来就可以使用

    展开全文
  • 导入服务端根文件夹数据库文件public/sql/5kcrm.sql,并修改config/database.php配置文件。 配置要求 PHP >= 5.6.0 (暂不支持PHP7及以上版本) 当访问 http://localhost/ 前端部署 安装node.js 前端部分是基于...
  • 基本的后台管理框架系统,可以在该基础上进行二次开发,也可以自行改装,内置权限管理/菜单管理/角色管理/管理管理/系统信息/管理员信息修改/图片上传。 需要注意点:1端口设置,xampp版本没有测过,之前出现版本...
  • TP5开发的微信公众号通用管理系统 安装 下载本项目到本地 git clone https://github.com/ningbnii/tp5_weixin.git 然后进入auth_tp5目录,下载TP5的核心框架包 git clone ...
  • tp-link管理程序

    2019-03-10 12:56:24
    硬件程序,网络安全管理程序
  • tp5引入Rbac插件可以很方便的管理后台权限问题,之前看了好多文档都无法迁移数据库文件 只好自己整了个分享出来
  • 后台采用TP5搭建restful风格api(含全局异常处理、跨域处理、全局日志等),前端是微信小程序商城,源码可运行
  • tp6内容管理通用后台带权限
  • tp5漂亮后台界面

    2019-03-11 11:03:27
    tp5源码写的,很漂亮的后台界面,功能齐全
  • layui2.5.6 + thinkphp6.0.2 权限管理后台,简单的权限管理,thinkphp6的最新版本,多应用模式
  • tp5权限管理 附源码

    千次阅读 2019-04-11 22:43:11
    `admin_sign` tinyint(1) NOT NULL COMMENT '1- 超级管理员,2-一般管理员', `create_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建者ID', `create_time` int(11) DEFAULT NULL COMMENT '创建时间', ...

    源码下载:https://download.csdn.net/download/qq_14940627/11107673

    首先创建一张包含URL的一张action表:

    CREATE TABLE `action` (
      `action_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `action_url` varchar(255) NOT NULL DEFAULT '0' COMMENT '功能URL',
      `action_name` varchar(255) NOT NULL DEFAULT '0' COMMENT '功能名称',
      `action_desc` varchar(255) DEFAULT NULL COMMENT '功能描述',
      `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '-1:已删除, 0:禁止访问, 1:正常访问',
      `pid` int(11) NOT NULL DEFAULT '0' COMMENT '功能父级id',
      `module` varchar(255) DEFAULT NULL COMMENT '模块',
      `type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '功能类型:1-菜单  2-页面  3-按钮',
      `icon` varchar(255) DEFAULT NULL COMMENT '功能icon图标',
      `level` int(10) unsigned DEFAULT NULL COMMENT '功能等级',
      `group_id` int(10) unsigned DEFAULT NULL COMMENT '功能组id',
      `sort` tinyint(2) DEFAULT NULL,
      `delete_time` int(10) unsigned DEFAULT NULL,
      PRIMARY KEY (`action_id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;

    数据如下,大家可以根据自己实际情况插入:

    INSERT INTO `action` VALUES ('2', 'admin/news/index', '新闻列表', null, '1', '0', 'admin', '0', null, null, null, '1', null);
    INSERT INTO `action` VALUES ('3', 'admin/news/add', '新闻添加', null, '1', '2', 'admin', '0', null, null, null, '2', null);
    INSERT INTO `action` VALUES ('4', 'admin/news/edit', '新闻编辑', null, '1', '2', 'admin', '0', null, null, null, '3', null);
    INSERT INTO `action` VALUES ('5', 'admin/news/del', '新闻删除', null, '1', '2', 'admin', '0', null, null, null, '4', null);
    INSERT INTO `action` VALUES ('6', 'admin/auth/index', '权限组列表', null, '1', '0', 'admin', '0', null, null, null, '5', null);
    INSERT INTO `action` VALUES ('7', 'admin/auth/edit', '权限编辑', null, '1', '6', 'admin', '0', null, null, null, '6', null);
    INSERT INTO `action` VALUES ('8', 'admin/auth/add', '添加权限组', null, '1', '6', 'admin', '0', null, null, null, '7', null);
    INSERT INTO `action` VALUES ('9', 'admin/auth/del', '权限删除', null, '1', '6', 'admin', '0', null, null, null, '8', null);
    INSERT INTO `action` VALUES ('10', 'admin/manager/index', '管理员列表', null, '1', '0', null, '0', null, null, null, null, null);
    INSERT INTO `action` VALUES ('11', 'admin/manager/add', '添加管理员', null, '1', '10', null, '0', null, null, null, null, null);
    INSERT INTO `action` VALUES ('12', 'admin/manager/edit', '编辑管理员', null, '1', '10', null, '0', null, null, null, null, null);
    INSERT INTO `action` VALUES ('13', 'admin/manager/del', '删除管理员', null, '1', '10', null, '0', null, null, null, null, null);
    INSERT INTO `action` VALUES ('14', 'admin/login/pwdmodify', '修改密码', null, '1', '0', null, '0', null, null, null, null, null);
    INSERT INTO `action` VALUES ('15', 'admin/column/index', '栏目管理', null, '1', '0', null, '0', null, null, null, null, null);
    INSERT INTO `action` VALUES ('16', 'admin/column/add', '增加栏目', null, '1', '15', null, '0', null, null, null, null, null);
    INSERT INTO `action` VALUES ('17', 'admin/column/edit', '编辑栏目', null, '1', '15', null, '0', null, null, null, null, null);
    INSERT INTO `action` VALUES ('18', 'admin/column/del', '删除栏目', null, '1', '15', null, '0', null, null, null, null, null);

    创建一张管理员的表

    CREATE TABLE `admin` (
      `admin_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `admin_name` varchar(32) NOT NULL,
      `pwd` varchar(255) NOT NULL,
      `su_pwd` varchar(255) DEFAULT NULL,
      `nicke_name` varchar(255) DEFAULT NULL,
      `login_time` int(11) DEFAULT NULL,
      `admin_status` tinyint(4) DEFAULT '1' COMMENT '管理员状态: -1: 删除   0: 禁用   1:正常',
      `admin_sign` tinyint(1) NOT NULL COMMENT '1- 超级管理员,2-一般管理员',
      `create_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建者ID',
      `create_time` int(11) DEFAULT NULL COMMENT '创建时间',
      `update_time` int(11) DEFAULT NULL COMMENT '跟新时间',
      `sort` smallint(6) NOT NULL DEFAULT '99',
      PRIMARY KEY (`admin_id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;

    创建一张角色表

    CREATE TABLE `role` (
      `role_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `role_name` varchar(255) NOT NULL,
      `role_desc` varchar(255) DEFAULT NULL COMMENT '角色描述',
      `role_pid` int(11) NOT NULL DEFAULT '0',
      `role_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '-1:删除 , 0:禁用,1正常',
      `role_path` varchar(255) DEFAULT NULL COMMENT '树路径',
      `admin_sign` varchar(255) DEFAULT NULL,
      `create_time` int(11) DEFAULT NULL,
      `update_time` int(11) DEFAULT NULL,
      PRIMARY KEY (`role_id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=26 DEFAULT CHARSET=utf8;

    最后创建一张管理员和角色对应的表

    CREATE TABLE `admin_role` (
      `admin_id` int(10) unsigned NOT NULL DEFAULT '0',
      `role_id` int(11) NOT NULL DEFAULT '0',
      `create_time` int(11) DEFAULT NULL,
      PRIMARY KEY (`admin_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    

    创建一个钩子在action之前执行

    <?php
    // +----------------------------------------------------------------------
    // | ThinkPHP [ WE CAN DO IT JUST THINK ]
    // +----------------------------------------------------------------------
    // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
    // +----------------------------------------------------------------------
    // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
    // +----------------------------------------------------------------------
    // | Author: liu21st <liu21st@gmail.com>
    // +----------------------------------------------------------------------
    
    // 应用行为扩展定义文件
    return [
        // 应用初始化
        'app_init'     => [],
        // 应用开始
        'app_begin'    => [],
        // 模块初始化
        'module_init'  => [],
        // 操作开始执行
        'action_begin' => ['app\\behavior\\OperateBehavior'],
        // 视图内容过滤
        'view_filter'  => [],
        // 日志写入
        'log_write'    => [],
        // 应用结束
        'app_end'      => [],
    ];
    

    不要忘记在common.php 中把钩子加上去

    <?php
    // +----------------------------------------------------------------------
    // | ThinkPHP [ WE CAN DO IT JUST THINK ]
    // +----------------------------------------------------------------------
    // | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
    // +----------------------------------------------------------------------
    // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
    // +----------------------------------------------------------------------
    // | Author: 流年 <liu21st@gmail.com>
    // +----------------------------------------------------------------------
    
    // 应用公共文件
    use think\Hook;
    
    Hook::add('action_begin','app\\behavior\\OperateBehavior');

    然后开始具体的behavior:OperateBehavior.php

    把所有的权限存储在Session中再来判断,当前的访问路径是否有权限

    <?php
    
    namespace app\behavior;
    
    use think\Controller;
    use think\Exception;
    use think\Session;
    
    class OperateBehavior extends Controller{
    
        // 定义需要排除的权限路由
        protected $exclude = [
            'index/index/index',
            'admin/login/index',
            'admin/index/index',
            'admin/class/getclass',
            'admin/login/loginverify',
            'admin/login/outlogin',
            'admin/index/info',
            'admin/class/getclass'
        ];
    
        /**
         * 权限验证
         */
        public function run(&$params){
    
    
            // 行为逻辑
            try {
                // 获取当前访问路由
                $url  = $this->getActionUrl();
    
                if(empty(Session::get()) && !in_array($url,$this->exclude)){
                    $this->error('请先登录','/admin/login');
                }
    
                // 用户所拥有的权限路由
                $auth = Session::get('auth.url') ? Session::get('auth.url'): [];
    
                if(!in_array($url, $auth) && !in_array($url, $this->exclude)){
                    $this->error('无权限访问');
                }
    
    
            } catch (Exception $ex) {
                print_r($ex);
            }
        }
    
        /**
         * 获取当前访问路由
         * @param $Request
         * @return string
         */
        private function getActionUrl()
        {
            $module     = request()->module();
            $controller = request()->controller();
            $action     = request()->action();
            $url        = $module.'/'.$controller.'/'.$action;
            return strtolower($url);
        }
    
    
    
    }

    登录验证判断权限

    <?php
    
    
    namespace app\admin\controller;
    
    use app\admin\model\AdminModel;
    use think\Controller;
    use think\Log;
    use think\Request;
    use think\response\Json;
    use think\Session;
    
    class LoginController extends Controller{
    
        public function index(){
    
            return $this->fetch();
        }
    
    
        /**
         * 登录验证
         * @param Request $Request
         * @return Json
         * @throws \think\Exception
         * @throws \think\db\exception\DataNotFoundException
         * @throws \think\db\exception\ModelNotFoundException
         * @throws \think\exception\DbException
         */
        public function loginVerify(Request $Request)
        {
    
            $name= input('post.name');
            $pwd= input('post.pwd');
    
            if(!$name) return json(array('code'=>0,'msg'=>'用户名不能为空'));
            if(!$pwd)  return json(array('code'=>0,'msg'=>'密码不能为空'));
            $info = (new AdminModel)->loginVerify($name, $pwd);  // 调用 AdminModel 中的 loginVerify() 验证方法
    
            if(false === $info) return json(array('code'=>0,'msg'=>'登录错误!'));
            if(-2 === $info)    return json(array('code'=>-2,'msg'=>'账号不存在'));
            if( 0 === $info)    return json(array('code'=>0,'msg'=>'账号被禁用'));
            if(-1 === $info)    return json(array('code'=>-1,'msg'=>'账号被删除'));
            if(-3 === $info)    return json(array('code'=>-3,'msg'=>'密码不正确'));
            if($info)
                Log::record('login:登录成功','operate');
            return json(array('code'=>1,'url'=>'/admin/index','msg'=>'登录成功!'));
        }
    
        public function outlogin(){
    
            Session::clear();
            $this->redirect('/admin/login');
        }
    
        public function pwdModify(){
    
            $admin_info= Session::get('user_info');
    
            if (Request::instance()->isPost()) {
    
                $oldpwd= trim(input('post.oldpwd'));
                $newpwd= trim(input('post.newpwd'));
    
                $admin = AdminModel::adminFindById($admin_info['admin_id']);
                if(md5($oldpwd) != $admin->pwd){
                    $this->error('原始密码错误');
                }else{
                    AdminModel::editAdmin($admin_info['admin_id'], ['pwd'=>md5($newpwd)]);
    
                    $this->success('修改成功');
                }
            }
    
            $this->assign('admin', $admin_info);
    
            return $this->fetch();
        }
    
    }

    在AdminModel 中进行权限的判断存储

    <?php
    namespace app\admin\model;
    use think\Model;
    
    use think\Db;
    use think\Session;
    
    class AdminModel extends Model
    {
        protected $table = '';
        protected $pk    = 'admin_id';
    
    
        public static function AdminList($size=5){
    
            return self::where('admin_status', '1')
                ->where('admin_id','<>', 1)->order('sort asc')->paginate($size);
    
        }
    
        public static function addAdmin($admin_data){
            return self::create($admin_data);
        }
    
        public static function editAdmin($admin_id, $admin_data){
    
            return self::where('admin_id', $admin_id)->update($admin_data);
        }
    
        public static function adminFindById($admin_id){
            return self::where('admin_id', $admin_id)->find();
        }
    
        public static function delAdmin($admin_id){
            return self::where('admin_id', $admin_id)->update(['admin_status'=>-1]);
        }
    
    
        /**
         * 登录验证
         * @param $name
         * @param $pwd
         * @return bool|int
         * @throws \think\db\exception\DataNotFoundException
         * @throws \think\db\exception\ModelNotFoundException
         * @throws \think\exception\DbException
         * @throws \think\Exception
         */
        public function loginVerify($name, $pwd){
            if(!$name) return false;
            if(!$pwd)  return false;
    
            // 定义存session时 需要删除的个人信息
            $unField  = ['pwd','create_time','update_time'];
    
            $userInfo = self::where('admin_name','=', $name)->find();
    
            if(!$userInfo)                    return -2;//账号不存在
            if(-1 == $userInfo->admin_status) return -1;//账号被删除
            if( 0 == $userInfo->admin_status) return  0;//账号被禁用
    
            // 密码、超码 验证
            if($userInfo->pwd != md5($pwd)) return -3;//密码不正确
    
            // admin_sign:管理员标记,1 超级管理员,2 一般管理员
            if(1 == $userInfo->admin_sign) {
                //获取超级管理员权限
                $auth = $this->_getAdminAuth();
            }else{
                //获取普通管理员权限
                $auth = $this->_getAuth($userInfo->admin_id);
            }
    
            // 删除部分个人信息
            foreach ($unField as $fKey => $fVal){
                unset($userInfo[$fVal]);
            }
    
    
            $data['login_time'] = time();
    
            // 更新登录状态
            self::where('admin_id', $userInfo->admin_id)->update($data);
    
            // 获取用户管理员角色名称
            $roleName = $this->getUserRoleName($userInfo->admin_id);
            $userInfo['roleName'] = $roleName;
    
            // session存储个人信息
            Session::set('user_info', $userInfo->toArray());
            // session存储权限
            Session::set('auth', $auth);
    
    
            return true;
        }
    
        /**
         * 获取管理员角色名称
         * @param $adminId
         * @return array|null|\PDOStatement|string|Model
         * @throws \think\db\exception\DataNotFoundException
         * @throws \think\db\exception\ModelNotFoundException
         * @throws \think\exception\DbException
         */
        public function getUserRoleName($adminId){
            if(!is_numeric($adminId)) return '';
            $roleNameArr = $this
                ->alias('a')
                ->join('admin_role ar', 'a.admin_id=ar.admin_id', 'LEFT')
                ->join('role r', 'ar.role_id=r.role_id', 'LEFT')
                ->where('a.admin_id',$adminId)
                ->field('r.role_name, r.role_id')
                ->find();
            $roleName = empty($roleNameArr['role_name'])?'':$roleNameArr['role_name'];
            return $roleName;
        }
    
        /**
         * 获取超级管理员admin权限
         * @return array
         */
        private function _getAdminAuth(){
            $action = ActionModel::where('status',1)->select();
            if($action) {
    
                $action  = $action->toArray();  // 权限方法数组 $action
                $menuUrl = $this->_getMenuUrl($action);
            }
            unset($action);
            return $menuUrl ? $menuUrl : [];
        }
    
    
        /**
         * 获取普通管理员权限
         * @param $userId
         * @return array|bool
         */
        private function _getAuth($userId)
        {
    
            // 管理员角色权限
            $roAction = Db::name('admin_role')->alias('ar')
                ->join('role_action ra', 'ra.role_id=ar.role_id', 'LEFT')
                ->join('action a', 'a.action_id=ra.action_id', 'LEFT')
                ->where('ar.admin_id',$userId)
                ->where('a.status',1)
                ->order('a.sort')
                ->field('a.*')
                ->select()->toArray();
    
    
    
    
    
            $menuUrl= [];
            if( $roAction ) {
                $menuUrl = $this->_getMenuUrl( $roAction );
            }
    
            return $menuUrl ? $menuUrl : [];
        }
    
    
        /**
         * 获取菜单树和url列表
         * @param array $action
         * @return array|bool
         */
        private function _getMenuUrl(array $action){
            if(empty($action)) return false;
            $menu  = [];   // 主菜单数组
            $sort  = [];   // 主菜单排序数组
            $url   = [];   // 权限url数组
    
            foreach ($action as $aKey => $aVal) {
                if(1 == $aVal['type'] && !$aVal['module']){  // type=1\module=0 :主菜单 (ps:主菜单是通过点击'添加action'写入action表的)
                    $sort[]  = $aVal['sort'];   // 排序
                    $menu[] = $aVal;            // 主菜单数组
                }
                $url[] = strtolower($aVal['action_url']);   // 权限url数组
            }
    
            $menu=$this->_treeNode( $action);
    
            // $menu 跟随 $sort 升序排序
    //        array_multisort($sort, SORT_ASC, $menu);
    
           /* foreach ($menu as $mKey => $mVal){
                $menu[$mKey]['action_url'] = 'javascript:;';
                $menu[$mKey]['first'] = 1;
            }*/
    
            return array('menu'=>$menu,'url'=>$url);
        }
    
    
        private function _treeNode($data,$parentId = 0)
        {
            // 用于保存整理好的分类节点
            $node = [];
            // 循环所有分类
            foreach ($data as $key => $value) {
                // 如果当前分类的父id等于要寻找的父id则写入$node数组,并寻找当前分类id下的所有子分类
                if($parentId == $value ['pid']) {
                    $node [$key] = $value;
                    $node [$key] ['child'] = $this->_treeNode($data,$value ['action_id']);
                }
            }
            return $node;
        }
    
    }

    至此一个权限基本完成,效果如下:

    展开全文
  • tp5 composer 生成接口文档

    千次阅读 2019-06-10 16:03:03
    首先安装 composer ...1、安装扩展 composer require weiwei/api-doc ...5.0安装好扩展后在 application\extra\ 文件夹下会生成 doc.php 配置文件 5.1安装好扩展后在 application\config\ 文件夹下会生成 d...

    首先安装 composer

    自行去https://docs.phpcomposer.com/下载

    1、安装扩展

    composer require weiwei/api-doc 
    

    很慢 , 请耐心等待…

    2、配置参数

    5.0安装好扩展后在 application\extra\ 文件夹下会生成 doc.php 配置文件
    5.1安装好扩展后在 application\config\ 文件夹下会生成 doc.php 配置文件
    在controller参数中添加对应的类

     'controller' => [
            'app\\api\\controller\\Demo' //这个是控制器的命名空间+控制器名称
        ]
    

    3、在相关接口类中增加注释参数( group 参数将接口分组,可选)

    方法如下:返回参数支持数组及多维数组

    <?php
    namespace app\index\controller;
    use think\Controller;
    
    /**
     * @title 测试demo
     * @description 接口说明
     * @group 接口分组
     * @header name:key require:1 default: desc:秘钥(区别设置)
     * @param name:public type:int require:1 default:1 other: desc:公共参数(区别设置)
     */
    class Demo extends Controller
    {
        /**
         * @title 测试demo接口
         * @description 接口说明
         * @author 开发者
         * @url /index/demo
         * @method GET
         *
         * @header name:device require:1 default: desc:设备号
         *
         * @param name:id type:int require:1 default:1 other: desc:唯一ID
         *
         * @return name:名称
         * @return mobile:手机号
         * @return list_messages:消息列表@
         * @list_messages message_id:消息ID content:消息内容
         * @return object:对象信息@!
         * @object attribute1:对象属性1 attribute2:对象属性2
         * @return array:数组值#
         * @return list_user:用户列表@
         * @list_user name:名称 mobile:手机号 list_follow:关注列表@
         * @list_follow user_id:用户id name:名称
         */
        public function index()
        {
            //接口代码
            $device = $this->request->header('device');
            echo json_encode(["code"=>200, "message"=>"success", "data"=>['device'=>$device]]);
        }
    
        /**
         * @title 登录接口
         * @description 接口说明
         * @author 开发者
         * @url /api/demo
         * @method GET
         * @module 用户模块
    
         * @param name:name type:int require:1 default:1 other: desc:用户名
         * @param name:pass type:int require:1 default:1 other: desc:密码
         *
         * @return name:名称
         * @return mobile:手机号
         *
         */
        public function login(Request $request)
        {
            //接口代码
            $device = $request->header('device');
            echo json_encode(["code"=>200, "message"=>"success", "data"=>['device'=>$device]]);
        }
    }
    

    4、在浏览器访问http://你的域名/doc 或者 http://你的域名/index.php/doc 查看接口文档

    5、预览

    在这里插入图片描述

    展开全文
  • 本文实例讲述了TP5(thinkPHP框架)实现后台清除缓存功能。分享给大家供大家参考,具体如下: layui插件 http://www.layui.com/ 1–common的文件 /** * 循环删除目录和文件 * @param string $dir_name * @return ...
  • tp5 日志管理

    千次阅读 2018-11-07 18:32:19
    从V5.1.6+版本开始,文件类型的日志支持自动清理。可以设置max_files参数,超过数量的最早日志将会自动删除。 例如,下面设置日志最多保存数量为30个 return [ 'type' =&gt; 'File', 'max_files' =&gt...
  • TP5 用户管理

    千次阅读 2017-03-10 20:28:54
    包括数据库文件也在项目根目录下。 为了整洁美观,我把所有用到的方法贴在文章的末尾部分 可以边看实现流程,边看实现的代码。 首先配置application/config.php // 数据库类型 'type' => 'mysql' , ...
  • TP5CMS,一个基于ThinkPHP5.1版本开发内容管理系统,精细化自适应后台系统 主要功能: 数据缓存 权限控制 自定义模型 内容管理 广告管理 会员管理(未完成) 站点设置 日志记录 数据库管理 管理员分组 使用须知 运行...
  • 专栏教程连载更新中,通过实战开源前后端分离CMS——Lin CMS全家桶(lin-cms-vue & lin-cms-tp5)为一个前端应用实现内容管理系统。一套教程入门上手vue、ThinkPHP两大框架,自用、工作、私单一次打通。 读者反馈: ...
  • 1、后台权限管理 2、商品的添加功能、图片上传、预览 3、模板继承,公用一个父模板、header、footer 文件
  • 基于tp5免费开源的后台管理系统

    千次阅读 2019-06-03 16:42:00
    基于tp5免费开源的后台管理系统 可以自定义后台菜单,模块等。 后台模板用的是:AdminLTE 简单的后台基础管理系统,有兴趣开源看看 代码地址:https://github.com/mengzhilva/tp5admin 后台样式: 模块定义...
  • TP5引入静态资源文件

    千次阅读 2017-09-25 11:59:06
    TP5的入口文件默认是在public目录下,通常我们在public下创建与入口文件同级的目录 static存放静态资源文件。 notice : 这里我只是简单的放了一张图片与入口文件同级 首先看目录层级: 我放入的是一张jpg的图片...
  • tp路由器管理员密码config.bin解密工具,有tp路由器的config.bin就可以找到后台管理密码,本工具仅为学习测试使用,上传者不对因使用本工具而造成的任何结果负责。
  • 超级简单易懂的auth权限管理的demo,适合小白学习,数据库还有说明文档都有只要不嫌枯燥认真看完说明文档就会话不多说直接链接走起,小白自行下载访问演示,不懂的里面含数据库和说明文档,代码也都写了注释 ...
  • 它在通知区域提供了一个系统托盘... 应用您的设置时,所有必要的配置文件都会相应地写入(ipsec.conf、xl2tp.conf、options.xl2tpd、opensc.conf 上下脚本...)。 它依赖 Openswan 和 xl2tp 包作为底层协议处理程序。
  • TP5入口管理

    2018-10-06 18:16:06
    a、在网站public目录下(C:\AppServ\www\tp5\public) 新建admin.php b、打开admin.php &lt;?php // 定义应用目录 define('APP_PATH', __DIR__ . '/../application/'); // 加载框架引导文件 require __DIR__ . '/....
  • tp5上传文件到七牛云

    千次阅读 2018-07-13 09:30:06
    AK和SK在登录七牛云后找到个人中心然后找到秘钥管理 选择需要上传到的文件库名字( bucket ) 空间绑定的域名 4.控制器引入的代码( 如果是把整个七牛云的SDK放入vendor下的qiniu文件夹的话你会发现下面引入的代码与...
  • 结合TP5和H-ui开发的教学管理系统

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,146
精华内容 10,858
热门标签
关键字:

tp5文件管理