Можно ли переместить файлы в папке в разные подпапки согласно базе данных school_id - PullRequest
0 голосов
/ 04 октября 2019

Я сделал функцию загрузки изображений для больших функций регистрации. Мои загруженные файлы хранятся в одной папке ... но я хочу переместить эти файлы в отдельную папку с идентификатором, хранящимся в базе данных. Возможно ли переместить эти файлы в отдельные папки сейчас?

Я хочу переместить загруженные файлы в папку с именем 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 фотографий с различным school_Id, которые хранятся в одной папке. но я хочу, чтобы, если 2 фотографии были из одного значения school_id, было создано имя папки с этим school_id и две фотографии были помещены в эту папку. аналогично разные папки для разных school_id

1 Ответ

1 голос
/ 05 октября 2019

Надеюсь, следующий код поможет вам. дайте мне знать, если это не работает. создайте для функции или метода в контроллере место, следуя коду, и запустите эту функцию, внесите необходимые изменения. Я создал нижеприведенный код, основываясь на информации, которую вы нам дали.

$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) ;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...