Codeigniter 是否可以根据数据库id将文件夹中的文件移动到不同的子文件夹

Codeigniter 是否可以根据数据库id将文件夹中的文件移动到不同的子文件夹,codeigniter,Codeigniter,我已经做了一个大型注册功能的图像上传功能。我上传的文件存储在一个文件夹中。。但我想将这些文件移动到一个单独的文件夹中,该文件夹的id存储在数据库中。现在是否可以将这些文件移动到单独的文件夹中 我想将上传的文件移动到数据库中id为的文件夹中。我不能手动操作,因为上传文件夹有成千上万的图像。可以用代码来做吗 public function add_applicants() { if (isset($_FILES['photo']) == 1) { $config['uploa

我已经做了一个大型注册功能的图像上传功能。我上传的文件存储在一个文件夹中。。但我想将这些文件移动到一个单独的文件夹中,该文件夹的id存储在数据库中。现在是否可以将这些文件移动到单独的文件夹中

我想将上传的文件移动到数据库中id为的文件夹中。我不能手动操作,因为上传文件夹有成千上万的图像。可以用代码来做吗

public function add_applicants()
{
    if (isset($_FILES['photo']) == 1) {
        $config['upload_path'] = FCPATH . 'uploads/';
        $this->upload_path = $config['upload_path'];

        if ($this->validate_upload_path() == TRUE)
        {
            $config['upload_path'] = $this->upload_path;
        }
        $config['allowed_types'] = 'jpg';
        $config['max_size'] = 2000;
        $config['remove_spaces'] = TRUE;
        $config['overwrite'] = true;
        $config['file_name'] = date('Ymdhis') . '.jpg';
        $file_name = $config['file_name'];
        $this->load->library('upload', $config);
        $this->upload->initialize($config);
        if (!$this->upload->do_upload('photo')) {
            $this->upload->display_errors();
        }
    }

    $data = $this->input->post();
    $data['photo'] = $file_name;

    $insetapplicants = $this->Welcome_Model->insertApplicants($data);
    if ($insetapplicants == 'Success') {
        echo "<script>

        alert('New Applicants Added Successfully');
        window.location.href='dashboard';
        </script>";
    }
}

public function index() {
    $data['mediumwise_details'] = $this->Welcome_Model->mediumwise_home();
    $this->load->view('home',$data);
}
我希望这些文件被移动到不同的文件夹中
例如,“我的上传”文件夹中有10张不同学校Id的照片存储在同一文件夹中。但我想,如果两张照片来自一个学校id,则意味着创建一个带有该学校id的文件夹名,并将两张照片放在该文件夹中。同样,不同学校id的不同文件夹

我希望下面的代码能帮助您。如果不起作用,请告诉我。 在controller place中创建函数或方法并运行该函数根据您提供的信息在下面的代码中进行必要的更改

$result = $this->db->get('mts_applicants')->result_array();
if($result){
    foreach($result as $row){
        $old_path = FCPATH . 'uploads/';
        $new_path = FCPATH . 'uploads/'.$row['school_code'].'/';
        $old_name = $old_path.$row['photo'];
        $new_name = $new_path.$row['photo'];
        if(!is_dir($new_path)){
            mkdir($new_path, 0777, true);
        }
        rename($new_name, $old_name) ;
    }
}

是否要移动已上载的文件?请提及数据库结构,以便我们可以帮助您。您是否将文件名存储到数据库中?是的,我将文件名存储在数据库创建表mts_申请人id int11未签名非空自动增量中,名称为考试varchar10非空,名称为candiadte varchar300非空,学校代码varchar300非空,income_id int11默认为NULL,photo varchar300默认为NULL,主键id引擎=InnoDB AUTO_INCREMENT=9782默认字符集=latin1;我使用了上面的代码,它抛出了一个PHP错误严重性:警告消息:rename/opt/lampp/htdocs/hall_tick_home/uploads/335/20190913044901.jpg,/opt/lampp/htdocs/hall_tick_home/uploads/20190913044901.jpg:没有这样的文件或目录文件名:controllers/Admin.php行号:85 Backtrace:file:/opt/lampp/htdocs/hall_tick_home/application/controllers/Admin.php行:85函数:require___home/index.php20190913044901.jpg存在于hall_tick_home/uploads文件夹中hall_tick_home/uploads/335/文件夹是否已创建?是,我已选中。。。那张照片不见了。。非常感谢您的朋友,您的代码运行得非常好。。感谢您的帮助:很高兴为您提供帮助我已经完成了注册功能的图像上传。。注册已经结束了。。。现在,图像名称在数据库中。。但在uploads文件夹中,缺少一些图像。现在我想要的是获取文件夹中缺少图像的行的报告。我想要文件夹中缺少图像的行的报告