[Codeigniter] Многократная загрузка не может быть вставлена ​​в базу данных и не загружается в каталог - PullRequest
0 голосов
/ 22 сентября 2019

Как загрузить несколько изображений с помощью Codeigniter 4.x?

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

Это мой взгляд:

<div class="section-body">
        <h2 class="section-title">Entry Group Passanger</h2>
        <div class="row">
            <div class="col-md-12">
                <form action="<?= base_url('passanger/addgroup') ?>" method="POST" enctype="multipart/form-data">

                <?php for($i=1;$i<=$pax['pax'];$i++) : ?>

                <h5>Passanger ke-<?= $i ?></h5>

                    <div class="form-row">
                        <div class="col-md-6">
                            <label for="fullname">Fullname</label>
                            <input type="text" class="form-control" name="name[]">
                            <?= form_error('name', '<small class="text-danger pl-3">', '</small>'); ?>
                        </div>
                        <div class="col-md-6">
                            <label for="gender">Gender</label>
                            <select class="form-control select2-input" name="gender">
                                <option>-- Select Gender --</option>
                                <option value="Male">Male</option>
                                <option value="Female">Female</option>
                                <option value="Other">Other</option>
                            </select>
                            <?= form_error('gender', '<small class="text-danger pl-3">', '</small>'); ?>
                        </div>
                    </div>
                    <div class="form-row">
                        <div class="col-md-12 mb-4 mt-2">
                            <label for="">Upload Passport</label>
                            <input type="file" name="upload_passport[]" id="input-file-now" class="dropify" />
                        </div>
                    </div>

Это моя модель:

public function addGroup() 
{
    $user = $this->db->get_where('user', ['username' => $this->session->userdata('username')])->row_array();
    $pax = $this->getPaxById();
    date_default_timezone_set('Asia/Jakarta');

    $upload_image = $_FILES['upload_passport[]']['name'];

    if ($upload_image) {
        $config['upload_path'] = './assets/img/uploads/passport';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size']     = '2048';

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

        for($i=0;$i<$pax['pax'];$i++) {
            if ($this->upload->do_upload('upload_passport[$i]')) {

                $new_image = $this->upload->data('file_name');

            } else {
                echo $this->upload->display_errors();
            }
        }
    }

    $name = $this->input->post("name[]");
    $gender = $this->input->post("gender[]");
    $birthdate = $this->input->post("birthdate[]");
    $no_passport = $this->input->post("no_passport[]");
    $expire_passport = $this->input->post("expire_passport[]");
    $destination = $this->input->post("destination[]");
    $date = $this->input->post("date[]");
    $dp1 = "0";
    $dp2 = "0";
    $lunas = "0";
    $type = "Group";
    $status = "Not Complete";
    $permission = "0";
    $upload_passport = $new_image;
    $upload_dp1 = "default.png";
    $upload_dp2 = "default.png";
    $date_created = date('d/m/Y H:i:s');
    $data = [];
    $jumlah = $pax['pax'];

    for($x=0;$x<$jumlah;$x++) {

        array_push($data, [
            'name'=>$this->input->post("name[$x]"),
            'id_user'=> $user['id_user'], 
            'gender'=>$this->input->post("gender[$x]"),  
            'birthdate'=>$this->input->post("birthdate[$x]"), 
            'no_passport'=> $this->input->post("no_passport[$x]"),
            'expire_passport'=> $this->input->post("expire_passport[$x]"),
            'destination'=> $this->input->post("destination[$x]"),
            'date'=> $this->input->post("date[$x]"),
            'dp1'=> $dp1,
            'dp2'=> $dp2,
            'lunas'=> $lunas,
            'pax'=> $pax['pax'],
            'type'=> $type,
            'status'=> $status,
            'permission'=> $permission,
            'upload_passport'=> $new_image,
            'upload_dp1'=> $upload_dp1,
            'upload_dp2'=> $upload_dp2,
            'date_created'=> $date_created
        ]);
        var_dump($data); die;
    }
    $this->db->insert_batch("passanger", $data);

}

Что я хочуget is:

array ('', '', 'upload_image'), array ('', '', 'upload_image')

Когда вставить его вбазы данных, но когда я делаю это, загрузка просто получает вывод null, и она даже не загружается в мой каталог загрузок.Я был бы очень признателен, если бы вы мне помогли, я застрял на этом в течение 3 дней.Спасибо.

1 Ответ

0 голосов
/ 23 сентября 2019
for ($i=0; $i < sizeof($_FILES['image']['name']) ; $i++) { 
                    $_FILES['file']['name']     = $_FILES['image']['name'][$i];
                    $_FILES['file']['type']     = $_FILES['image']['type'][$i];
                    $_FILES['file']['tmp_name'] = $_FILES['image']['tmp_name'[$i];
                    $_FILES['file']['error']    = $_FILES['image']['error'][$i];
                    $_FILES['file']['size']     = $_FILES['image']['size'][$i];
                    $config['upload_path'] = PRODUCT_IMAGE_UPLOAD_PATH;
                    $config['allowed_types'] = 'gif|jpg|png|jpeg';
                    $config['encrypt_name']  = TRUE;
                    $this->load->library('upload', $config);
                    if ($this->upload->do_upload('file')){
                        $images[] = $this->upload->data('file_name');
                    }else {
                        echo $this->upload->display_errors();
                    }
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...