I cant upload Multiple file upload in codeigniter

2019-08-14 06:17发布

问题:

This is my view (html) content

<tr>
    <td width="341" class="linkssubhead">
        Subcategory Image&nbsp;<span class="errormsg">*</span>
    </td>
    <td width="965" align="left">
        <input type="file" name="subcategory_image" value=""  class="required" />&nbsp;&nbsp;<span class="errormsg"><?php  echo $file_error ; ?> </span>
    </td>       
</tr>
<tr>
    <td width="341" class="linkssubhead">
        Subcategory Banner Image&nbsp;<span class="errormsg">*</span>
    </td>
    <td width="965" align="left">
        <input type="file" name="subcategory_banner_image" value=""  class="required" />&nbsp;&nbsp;<span class="errormsg"><?php  echo $file_error ; ?> </span>
    </td>       
</tr>
<tr>
    <td width="341" class="linkssubhead">
        Subcategory Banner Logo&nbsp;<span class="errormsg">*</span>
    </td>
    <td width="965" align="left">
        <input type="file" name="subcategory_banner_logo" value=""  class="required" />&nbsp;&nbsp;<span class="errormsg"><?php  echo $file_error ; ?> </span>
    </td>       
</tr>

This is my controller

$config_image['allowed_types'] =  'gif|jpg|png';
$config_image['overwrite'] =TRUE;
$config_image['subcategory_image']['upload_path'] = './public/subcategory/';
$config_image['subcategory_banner_image']['upload_path'] = './public/subcategory/bannerimage/';
$config_image['subcategory_banner_logo']['upload_path'] = './public/subcategory/bannerlogo/';
$config_image['subcategory_image']['file_name'] = $this->input->post('subcategory_name');
$config_image['subcategory_banner_image']['file_name'] = 'banner_image_'.$this->input->post('subcategory_name');
$config_image['subcategory_banner_logo']['file_name'] =  'banner_logo_'.$this->input->post('subcategory_name');

$this->load->library('upload', $config_image);
$this->upload->initialize($config_image); 
if (!$this->upload->do_upload(array('subcategory_image','subcategory_banner_image','subcategory_banner_logo')))
{
    $errors = $this->upload->display_errors();
    if ($errors)
    {
        $data['file_error'] = $errors;
        $data['body'] =  $this->load->view('matress_model/add_subcategory',$data,TRUE);
        $this->load->view('page',$data);
    } 
}
else
{
    redirect('fileupload/sucess');
}

After submitting the form I got an error

Severity: Warning
Message: Illegal offset type in isset or empty
Filename: libraries/Upload.php
Line Number: 140

How do I get rid of this and how can I allow multiple files upload?

回答1:

Have a separate config array for each image and then upload. like below

//I have given an exmaple for one image repeat this for others,
$config_image[0]['allowed_types'] =  'gif|jpg|png';
$config_image[0]['overwrite'] =TRUE;
$config_image[0]['subcategory_image']['upload_path'] = './public/subcategory/';
$config_image[0]['subcategory_image']['file_name'] = $this->input->post('subcategory_name');


//Load and initialize the library as below and then upload
$this->load->library('upload', $config_image[0]);
$this->upload->initialize($config_image[0]);