Несколько изображений не загружаются с помощью jquery ajax в codeigniter - PullRequest
0 голосов
/ 05 января 2019

В моем коде у меня есть поле ввода с именем product_image, куда я хочу загрузить и вставить несколько файлов в свою базу данных, как это img1.jpg,img2.jpg,img3.jpg. Но теперь, что произойдет, когда я выберу 4 files, т.е. img1.jpg,img2.jpg,img3.jpg,img4.jpg only img4.jpg store в моей базе данных, и только этот файл перемещается в мою папку.

вид:

<script>
    $(document).ready(function(){
        $("#submit").click(function(e){
            e.preventDefault();
            product_name = $("#product_name").val();
            var formData = new FormData();
            $.each($("#product_image"), function (i, obj) {
                $.each(obj.files, function (j, file) {                    
                    formData.append('product_image[' + i + ']', file);
                });
            });
            formData.append('product_name', product_name);
            $.ajax({
                type:"POST",
                data:formData,
                processData: false,
                contentType: false,
                url:"<?php echo base_url(); ?>admin/products",
                success:function(data){
                    $("#success_upload").html(data);
                }
            });
        });
    });
</script>

<input type="text" class="form-control" id="product_name" name="product_name">
<input type="file" id="product_image" name="product_image[]" multiple>
<input type="submit" class="btn btn-primary" id="submit" name="submit">

Контроллер:

public function products()
{
    $dataInfo = array();
    $files = $_FILES;
    $cpt = count($_FILES['product_image']['name']);
    for($i=0; $i<$cpt; $i++)
    {           
        $_FILES['product_image']['name']= $files['product_image']['name'][$i];
        $_FILES['product_image']['type']= $files['product_image']['type'][$i];
        $_FILES['product_image']['tmp_name']= $files['product_image']['tmp_name'][$i];
        $_FILES['product_image']['error']= $files['product_image']['error'][$i];
        $_FILES['product_image']['size']= $files['product_image']['size'][$i];
        $this->upload->initialize($this->set_upload_options());
                $this->upload->do_upload('product_image');
                $upload_data = $this->upload->data();
                $name_array[] = $upload_data['file_name'];
                $fileName = $upload_data['file_name'];
                $images[] = $fileName;
    }
    $fileName = $images;
    $data = array(
            'product_name' => $this->input->post('product_name'),
            'product_image' => implode(",",$fileName),
        );
    $sql = $this->db->insert('add_product',$data);
    if($sql == true)
    {
        echo '<p style="color:green;">New Product Added</p>';
    }
    else
    {
        echo '<p style="color:red;">Unable to Proceed!</p>';
    }
}
private function set_upload_options()
{   
    $config = array();
    $config['upload_path'] = FCPATH.'resource/product/';
    $config['allowed_types'] = 'gif|jpg|png|jpeg';
    $config['max_size']      = '1024';
    $config['overwrite']     = FALSE;
    return $config;
}           

Итак, как я могу загрузить и вставить несколько файлов в мою базу данных? Пожалуйста, помогите мне.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...