Как загрузить файл с нескольких входов с помощью codeigniter

У меня есть три разных входных файла, и я хочу загрузить его из разных папок. Мои коды ниже прекрасно работают во время загрузки, но они идут только в одну папку, которая всегда находится в папке "org_chart".

Это из моего контроллера:

    foreach ($_FILES as $key => $value) {
        if ($key == "updated-org-chart") {
            $config['allowed_types'] = 'pdf';
        $config['upload_path']   = './assets/manpower_requisition/org_chart/';
        $this->load->library('upload', $config);
        $this->upload->do_upload($key);
        }elseif ($key == "job-description") {
            $config['allowed_types'] = 'pdf';
        $config['upload_path']   = './assets/manpower_requisition/jd/';
        $this->load->library('upload', $config);
        $this->upload->do_upload($key);
        }elseif ($key == "bsc") {
            $config['allowed_types'] = 'pdf';
        $config['upload_path']   = './assets/manpower_requisition/bsc/';
        $this->load->library('upload', $config);
        $this->upload->do_upload($key);
        }
    }

2 ответа

Решение

После долгих часов, потраченных на эту проблему, я нашел решение, которое решило бы мою проблему. Codeigniter не позволяет дважды вызывать класс с новым параметром, вместо этого он должен "повторно инициализировать" класс загрузки. Вот некоторые статьи, которые, похоже, совпадают с проблемой. Статьи по Теме

$config['allowed_types'] = 'pdf';    
$this->load->library('upload', $config);
$this->upload->initialize($config);
$this->upload->do_upload($key);

Вы можете использовать конфигурацию, как показано ниже:

foreach ($_FILES as $key => $value) {
    switch ($key) {
        case 'updated-org-chart':
            $config['upload_path']   = './assets/manpower_requisition/org_chart/';
            break;

        case 'job-description':
            $config['upload_path']   = './assets/manpower_requisition/jd/';
            break;

        case 'bsc':
            $config['upload_path']   = './assets/manpower_requisition/bsc/';
            break;

        default:
            $config['upload_path']   = './assets/manpower_requisition/org_chart/';
            break;
    }
    $config['allowed_types'] = 'pdf';
    $this->load->library('upload', $config);
    $this->upload->do_upload($key);
}
Другие вопросы по тегам