403Webshell
Server IP : 156.238.232.47  /  Your IP : 216.73.216.150
Web Server : nginx/1.25.3
System : Linux C202504152095410 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User : www ( 1000)
PHP Version : 8.3.25
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/data/wwwroot/liaoning.961104.xyz/apps/admin/controller/system/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/data/wwwroot/liaoning.961104.xyz/apps/admin/controller/system/ImageExtController.php
<?php

namespace app\admin\controller\system;

use app\admin\model\content\CompanyModel;
use app\admin\model\content\ContentModel;
use app\admin\model\content\ContentSortModel;
use app\admin\model\content\LinkModel;
use app\admin\model\content\SiteModel;
use app\admin\model\content\SlideModel;
use app\admin\model\content\LabelModel;
use app\home\model\MemberModel;
use core\basic\Controller;

class ImageExtController extends Controller
{
    private $companyModel;
    private $contentSortModel;
    private $contentModel;
    private $linkModel;
    private $memberModel;
    private $siteModel;
    private $slideModel;
	private $LabelModel;

    public function __construct()
    {
        $this->companyModel = new CompanyModel();
        $this->contentSortModel = new ContentSortModel();
        $this->contentModel = new ContentModel();
        $this->linkModel = new LinkModel();
        $this->memberModel = new MemberModel();
        $this->siteModel = new SiteModel();
        $this->slideModel = new SlideModel();
		$this->LabelModel = new LabelModel();
    }

    public function index()
    {
        $this->display('system/extimage.html');
    }

    public function checkDataFile()
    {
        $count = 30;
        $page = get('page') ? get('page') : 1;
        $start = ($page - 1) * $count;
        $dataArr = [];
        $company = $this->companyModel->getImage();
        $contentSort = $this->contentSortModel->getImage();
        $content = $this->contentModel->getImage();
        $link = $this->linkModel->getImage();
        $member = $this->memberModel->getImage();
        $site = $this->siteModel->getImage();
        $slide = $this->slideModel->getImage();
		$label = $this->LabelModel->getImage();
        $resArr = array_merge_recursive($company, $contentSort, $content, $link, $member, $site, $slide, $label);
        array_walk_recursive($resArr, function ($key1) use (&$dataArr) {
            if (!empty($key1)) {
                $dataArr[] = str_replace(SITE_DIR . SITE_DIR . '/', SITE_DIR . '/', DOC_PATH . SITE_DIR .$key1);
            }
            return $dataArr;
        });
        $dataArr = array_unique($dataArr);
        //获取上传的文件
        $Filepath = DOC_PATH . STATIC_DIR . '/upload';
        $fileList = get_dir($Filepath);
        $fileArr = [];
        array_walk_recursive($fileList, function ($key) use (&$fileArr) {
            $fileArr[] = $key;
            return $fileArr;
        });

        //对比文件
        $difference = array_diff($fileArr, $dataArr);
        $pageList = array_slice($difference, $start, $count);
        $http = is_https() ? 'https://' : 'http://';
        foreach ($pageList as &$value) {
            $value = [
                'real_path' => $value,
                'static_path' => $http . $_SERVER['SERVER_NAME'] . str_replace(DOC_PATH, '', $value),
                'update_time' => date('Y-m-d H:i:s', filemtime($value))
            ];
        }
        $jsonData = ['code' => 0,'msg'=> '', 'count' => count($difference),'data' => $pageList];
        return json_encode($jsonData);

    }

    public function do_ext()
    {
        $type = post('type');
        $list = post('list');

        $movePath = DOC_PATH . STATIC_DIR . '/backup/ImageExt';
        check_dir($movePath, true);

        switch ($type){
            case 0:
                //清理所选文件
                foreach ($list as $value){
                    $fileName = substr(strrchr($value['real_path'], "/"), 1);
                    $filePath = strstr($value['real_path'],'/static');
                    $fileDir = str_replace($fileName,'',$filePath);
                    check_dir($movePath . $fileDir, true);
                    rename($value['real_path'], $movePath . $filePath);
                }
                break;
            case 1:
                //清理所有冗余文件
                //获取上传的文件
                $Filepath = DOC_PATH . STATIC_DIR . '/upload';
                $fileList = get_dir($Filepath);
                $fileArr = [];
                array_walk_recursive($fileList, function ($key) use (&$fileArr) {
                    $fileArr[] = $key;
                    return $fileArr;
                });
                //查询数据
                $dataArr = [];
                $company = $this->companyModel->getImage();
                $contentSort = $this->contentSortModel->getImage();
                $content = $this->contentModel->getImage();
                $link = $this->linkModel->getImage();
                $member = $this->memberModel->getImage();
                $site = $this->siteModel->getImage();
                $slide = $this->slideModel->getImage();
				$Label = $this->LabelModel->getImage();
                $resArr = array_merge_recursive($company, $contentSort, $content, $link, $member, $site, $slide, $Label);
                array_walk_recursive($resArr, function ($key1) use (&$dataArr) {
                    if (!empty($key1)) {
                        $dataArr[] = str_replace(SITE_DIR . SITE_DIR . '/', SITE_DIR . '/', DOC_PATH . SITE_DIR .$key1);
                    }
                    return $dataArr;
                });
                $dataArr = array_unique($dataArr);
                //对比文件并执行文件迁移
                $difference = array_diff($fileArr, $dataArr);
                $movePath = DOC_PATH . STATIC_DIR . '/backup/ImageExt/';
                check_dir($movePath, true);
                foreach ($difference as $path) {
                    $fileName = substr(strrchr($path, "/"), 1);
                    $filePath = strstr($path,'/static');
                    $fileDir = str_replace($fileName,'',$filePath);
                    check_dir($movePath . $fileDir, true);
                    rename($path, $movePath . $filePath);
                }
                break;
        }
        json(1,'');
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit