<?php  
namespace app\admin\controller;  
 
use PhpOffice\PhpSpreadsheet\IOFactory;  
use think\Controller;  
 
class Execlaa extends Controller  
{  
    public function readexcel()  
    {  
        $rootPath = $_SERVER['DOCUMENT_ROOT']; 
        $publicPath = rtrim($rootPath, '/');
        $filePath = '/tsf/2302.xls';  
        $directory = '/tsf/2302班'; // 替换为你的图片文件夹路径  
        // Excel文件路径  
        
        $excelPath = $publicPath . $filePath;
        
        // dump($excelPath);
        // die;
        // 读取Excel文件  
        $spreadsheet = IOFactory::load($excelPath);  
        $worksheet = $spreadsheet->getActiveSheet();  
        
        // dump($spreadsheet);
        // die;
        // 获取数据  
        $data = [];  
        $highestRow = $worksheet->getHighestRow(); // 获取最高行数  
        $highestColumn = $worksheet->getHighestColumn(); // 获取最高列  
 
        for ($row = 2; $row <= $highestRow; $row++) { // 假设第一行是标题行  
            $rowData = [];  
            for ($col = 'A'; $col <= $highestColumn; $col++) {  
                $rowData[] = $worksheet->getCell($col . $row)->getValue();  
            }  
            $data[] = $rowData;  
        }  
 
        // 处理数据或返回数据  
        // 例如：输出数据到控制台  
        // foreach ($data as $row) {  
        //     var_dump($row);  
        // }  
 
        // 或者你可以将数据保存到数据库或进行其他操作  
 
        // ...  
        // dump($data);
        // die;






        
        $picPath = $publicPath . $directory;
        
        $tupian_arr = [];
        // 打开目录  
        if ($handle = opendir($picPath)) {  
            // 遍历目录中的文件和子目录  
            while (false !== ($file = readdir($handle))) {  
                // 跳过当前目录和上级目录  
                if ($file != "." && $file != "..") {  
                    // 检查文件扩展名是否为图片格式  
                    $extension = pathinfo($file, PATHINFO_EXTENSION);  
                    $imageExtensions = array('jpg', 'jpeg', 'png', 'gif', 'bmp'); // 添加你需要的图片格式  
        
                    if (in_array(strtolower($extension), $imageExtensions)) {  
                        // 输出图片文件名或进行其他处理  
                        // echo "找到图片文件: " . $file . "<br>";  
                        // 如果你想获取图片完整路径，可以这样做：  
                        $fullPath = $picPath . '/' . $file;  
                        // echo "图片完整路径: " . $fullPath . "<br>";  
                        // dump($fullPath);
                        // dump($file);
                        // dump(pathinfo($file, PATHINFO_FILENAME));
                        // dump('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
                        $tupian_arr[pathinfo($file, PATHINFO_FILENAME)] = $fullPath;
                    }  
                }  
            }  
            // 关闭目录  
            closedir($handle);  
        } else {  
            echo "无法打开目录 $directory";  
        } 
        
        foreach ($tupian_arr as $key => $value) {
            for ($i=0; $i < count($data); $i++) { 
                if($data[$i][0] == $key){
                    $this->renameImage($value,$data[$i][4]);
                    break;
                }
            }
        }
        // dump($tupian_arr);
        // dump($tupian_arr[1]);
        

        // return json(['status' => 'success', 'data' => $data]); // 假设你想返回JSON响应  
    }  


    public function renameImage($filename,$newfn)  
    {  
        // 假设这是你的图片文件的当前路径  
        // $filename = './public/uploads/old_name.jpg';  
          
        // 构建新的文件名（确保它与目录中的其他文件不冲突）  
        $newfn = $newfn.'.jpg';  
        $rootPath = $_SERVER['DOCUMENT_ROOT']; 
        $publicPath = rtrim($rootPath, '/');
        $newImagePath = $publicPath . '/tsf/demo/'.$newfn;
        // $newImagePath = './public/uploads/' . $newFileName;  
        
        // dump($filename);
        // dump($newImagePath);
        // 使用rename()函数重命名文件  
        if (rename($filename, $newImagePath)) {  
            // 重命名成功，可以进行其他操作，如记录日志、返回成功消息等  
            echo '图片重命名成功！';  
        } else {  
            // 重命名失败，处理错误  
            echo '图片重命名失败，请检查路径和权限！';  
        }  
    }  


}