Загрузить несколько файлов в codeigniter после отправки формы - PullRequest
0 голосов
/ 03 октября 2019

В моем проекте CodeIgniter я загружаю несколько файлов во время создания проекта. Пожалуйста, дайте мне знать, как загрузить несколько файлов с помощью CI.

Это выходной массив после отправки формы.

[user_attached] => Array
        (
            [name] => Array
                (
                    [pic_passport] => cp-user-error.png
                    [att_document] => local-delivery-done.png
                )

            [type] => Array
                (
                    [pic_passport] => image/png
                    [att_document] => image/png
                )

            [tmp_name] => Array
                (
                    [pic_passport] => C:\xampp\tmp\phpC707.tmp
                    [att_document] => C:\xampp\tmp\phpC718.tmp
                )

            [error] => Array
                (
                    [pic_passport] => 0
                    [att_document] => 0
                )

            [size] => Array
                (
                    [pic_passport] => 635392
                    [att_document] => 36512
                )

        )

Ответы [ 2 ]

0 голосов
/ 04 октября 2019

Создать библиотеку для этого кода и звонить с контроллера

for($i = 0; $i < $config_array['files_count']; $i++)
{
    if($config_array['file_data']['name'][$i]) 
    {
        $file_name = $config_array['file_data']['name'][$i];

        $file_info  = pathinfo($file_name);

        $new_file_name = preg_replace('/[[:space:]]+/', '_', $file_info['filename']);

        $new_file_name = $new_file_name.'_'.DATE(UPLOAD_FILE_DATE_FORMAT);

        $new_file_name = str_replace('.','_',$new_file_name);

        $file_extension = $file_info['extension'];

        $new_file_name = $new_file_name.'.'.$file_extension;

        $_FILES['attchment']['name'] = $new_file_name;

        $_FILES['attchment']['tmp_name'] = $config_array['file_data']['tmp_name'][$i];

        $_FILES['attchment']['error'] = $config_array['file_data']['error'][$i];

        $_FILES['attchment']['size'] = $config_array['file_data']['size'][$i];

        $config['upload_path'] = $config_array['file_upload_path'];

        $config['file_name'] = $new_file_name;

        $config['allowed_types'] = $config_array['file_permission'];

        $config['file_ext_tolower'] = TRUE;

        $config['remove_spaces'] = TRUE;

        $config['max_size'] = $config_array['file_size'];

        $this->CI->load->library('upload',$config);

        $this->CI->upload->initialize($config);

        if($this->CI->upload->do_upload('attchment'))
        {
            array_push($file_array,array(
                    'og_name'=> $file_name,
                    'name'=> $new_file_name)
            );
        }
        else
        {   
            array_push($error_msgs,$this->CI->upload->display_errors('',''));
        }
    }
}
0 голосов
/ 03 октября 2019

Для загрузки нескольких файлов в Codeigniter. Попробуйте это.

     $filesCount = count($_FILES['user_attached']['name']);
    $path = 'upload/document';
    if (!file_exists($path)) {
        mkdir($path, 0777, true);
    }
    $array = ['pic_passport','att_document'];

for($i = 0; $i < $filesCount; $i++) { 

    $_FILES['userFile']['name'] = $_FILES['user_attached']['name'][$array[$i]];
    $_FILES['userFile']['name'] = $_FILES['user_attached']['name'][$array[$i]];
    $_FILES['userFile']['type'] = $_FILES['user_attached']['type'][$array[$i]];
    $_FILES['userFile']['tmp_name'] = $_FILES['user_attached']['tmp_name'][$array[$i]];
    $_FILES['userFile']['error'] = $_FILES['user_attached']['error'][$array[$i]];
    $_FILES['userFile']['size'] = $_FILES['user_attached']['size'][$array[$i]];
    $imagename = $this->randomAlphanumId(10);              
    $image_name[$array[$i]]="doc_".$imagename."_".str_replace(array(' '),'_',$_FILES['userFile']['name']);

    $config['upload_path'] = $path;
    $config['allowed_types'] = '*';
    $config['file_name'] = $image_name[$array[$i]];
    $this->load->library('upload',$config);
    $this->upload->initialize($config);
    if($this->upload->do_upload('userFile')) {
        $fileData = $this->upload->data();
        $upload_image[] = $fileData['file_name'];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...