🔓 Ultimate Webshell - Penetration Testing Tool

📖 File Reader

<?php
namespace app\admin\controller;
use adminCreate\form\Form;
use think\facade\Db;
use think\facade\View;

class Video extends Base
{
    /*分类列表*/
    public function act_list()
    {
        return View::fetch();
    }

    /*分类列表数据*/
    public function act_list_ajax()
    {
        $keyword = input("param.keyword");
        $where = 1;
        if (!empty($keyword)){
            $where .= " and name like '%".$keyword."%'";
        }
        $list = db::name("video_act")->where($where)->order("sort desc")->select()->toArray();
        foreach ($list as $k => $v){
            $list[$k]["time_add"] = date("Y-m-d H:i",$v["time_add"]);
        }
        $count = db::name("video_act")->where($where)->count();
        return $this->layui_json($count,$list);
    }

    /*分类列表字段修改*/
    public function act_field_update()
    {
        $id = input("param.id");
        $field_name = input("param.field_name");
        $info[$field_name] = input("param.value");
        db::name("video_act")->where("id = $id")->data($info)->update();
        return $this->succeed_json("操作成功");
    }

    /*分类上传处理*/
    public function act_update()
    {
        $id = input("param.id");
        if (input("post.")){
            $info = [
                'name'=>input("param.name"),
                'sort'=>input("param.sort"),
                'time_add'=>time(),
            ];
            if (empty($id)){
                db::name("video_act")->insertGetId($info);
            }else{
                db::name("video_act")->where("id = $id")->data($info)->update();
            }
            return $this->succeed_json("操作成功");
        }else {
            $info = ['name'=>'','sort'=>0];
            if (!empty($id)){
                $info = db::name("video_act")->where("id = $id")->find();
            }
            $form = new Form();
            $form->tabs('tabs1', '基本信息');
            $form->input('name', '名称',$info["name"])->required()->tabs('tabs1');
            $form->number('sort', '排序', $info["sort"])->tabs('tabs1');
            $form->hidden('id',$id);
            $form->button('/admin/Video/act_update');
            return $form;
        }
    }

    /*分类删除*/
    public function act_del()
    {
        $id = input("param.id");
        $video_count = db::name("video")->where("act_id = $id")->count();
        if (!empty($video_count)){
            return $this->error_json("该分类下存在数据,不可删除!");
        }
        db::name("video_act")->where("id = $id")->delete();
        return $this->succeed_json("删除成功");
    }

    /*视频列表*/
    public function video_list()
    {
        $list = db::name("video_act")->order("sort desc")->select()->toArray();
        View::assign([
            'list'=>$list,
        ]);
        return View::fetch();
    }

    /*视频列表数据*/
    public function video_list_ajax()
    {
        $title = input("param.title");
        $act_id = input("param.act_id");
        $where = 1;
        if (!empty($title)){
            $where .= " and a.title like '%".$title."%'";
        }
        if ($act_id != ''){
            $where .= " and a.act_id = $act_id";
        }else{
            $where .= " and a.act_id != 0";
        }
        $list = db::name("video")->alias("a")
            ->join("video_act b","a.act_id = b.id","LEFT")
            ->field("a.id,a.act_id,a.title,a.img,a.is_show,a.browse_sum,a.time_add,b.name as name_act")
            ->where($where)
            ->order("a.id desc")
            ->page($this->page,$this->limit)
            ->select();
        $list = json_decode($list,true);
        foreach ($list as $k => $v){
            $list[$k]["time_add"] = date("Y-m-d H:i",$v["time_add"]);
            $list[$k]["img"] = str_replace('\\', "/", $v["img"]);
        }
        //获取总页数
        $count = db::name("video")->alias("a")
            ->join("video_act b","a.act_id = b.id","LEFT")
            ->where($where)
            ->count();
        return $this->layui_json($count,$list);
    }

    /*视频列表字段修改*/
    public function video_field_update()
    {
        $id = input("param.id");
        $field_name = input("param.field_name");
        $info[$field_name] = input("param.value");
        db::name("video")->where("id = $id")->data($info)->update();
        return $this->succeed_json("操作成功");
    }

    /*视频上传处理*/
    public function video_update()
    {
        $id = input("param.id");
        if ($_POST){
            $info = [
                'title'=>input("param.title"),
                'act_id'=>input("param.act_id"),
                'img'=>implode(",",input("param.img")),
                'video_url'=>implode(",",input("param.video_url")),
                'browse_sum'=>input("param.browse_sum"),
                'time_add'=>time(),
            ];
            if (empty($id)){
                db::name("video")->insertGetId($info);
            }else{
                db::name("video")->where("id = $id")->data($info)->update();
            }
            return $this->succeed_json("操作成功");
        }else{
            $info = ['title'=>'','act_id'=>'','img'=>'','video_url'=>'','browse_sum'=>0,'content'=>''];
            if (!empty($id)){
                $info = db::name("video")->where("id = $id")->find();
            }
            $form = new Form();
            $form->tabs('tabs1', '基本信息');
            $form->input('title', '标题',$info["title"])->required()->tabs('tabs1');
            $form->selectOne('act_id', '所属分类',$info["act_id"])->setOptions(function(){
                $list_act = db::name("video_act")->order("sort desc")->select()->toArray();
                $menus = [];
                foreach ($list_act as $k => $v){
                    $menus[] = ['label'=>$v["name"],'value'=>$v["id"]];
                }
                return $menus;
            })->multiple(false)->filterable(false)->required()->tabs('tabs1');
            $form->upload('img', '封面', '/admin/ad/uploads', [$info['img']])->nultiple(false)->required('',"array")->tabs('tabs1');
            $form->upload('video_url', '视频上传', '/admin/ad/uploads', [$info['video_url']],'mp4')->nultiple(false)->required('',"array")->tabs('tabs1');
            $form->number('browse_sum', '浏览量', $info["browse_sum"])->tabs('tabs1');
            $form->hidden('id',$id);
            $form->button('/admin/Video/video_update');
            return $form;
        }
    }

    /*视频删除*/
    public function video_del()
    {
        $id = input("param.id");
        $info = db::name("video")->where("id = $id")->find();
        if(file_exists($_SERVER["DOCUMENT_ROOT"].$info["video_url"])){
            unlink($_SERVER["DOCUMENT_ROOT"].$info["video_url"]);
        }
        if(file_exists($_SERVER["DOCUMENT_ROOT"].$info["img"])){
            unlink($_SERVER["DOCUMENT_ROOT"].$info["img"]);
        }
        db::name("video")->where("id = $id")->delete();
        return $this->succeed_json("删除成功");
    }
}