//清理用户冗余头像图片
    public function clearPhoto(){

        //指定目录绝对地址
        $path = realpath(dirname(__FILE__).'/../../public/static/upload');

        //查找指定目录下所有照片文件
        $arr=glob($path.'/userhead/*/*.{jpg,png,gif,jpeg,JPG,PNG,GIF,JPEG}',GLOB_BRACE);

        //服务器数据库目录绝对地址
        $dataPath = realpath(dirname(__FILE__).'/../../public/');
        //计算地址长度供查询数据库是截取使用
        $dataPath = strlen($dataPath);

        if(count($arr)>0){

            $j=count($arr);
            $ndel=0;

            for($i=0;$i<$j;$i++){
                //截取图片在服务器中的绝对地址,转换为数据库中的地址
                $dataArr = '..'.substr($arr[$i],$dataPath);
                //查询数据库中是否存在此图片
                $sql = Db::table('user')->where('face_img','=',$dataArr)->find();
                //不存在则删除
                if(!$sql){
                    unlink ($arr[$i]);
                    $ndel++;
                }
            }

            $n=count($arr)-$ndel;

            if($ndel>0){
                return "已清理".$ndel."张冗余照片,";
            }
            return ("没有找到冗余图片,共有 ".$n."张用户头像照片!");

        }

        if(count($arr)==0){
            return ("服务器没有冗余头像照片");
        }
    }

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注