我无法在codeigniter上传多个文件上传

时间:2012-09-27 06:37:33

标签: codeigniter file-upload codeigniter-2

这是我的观点(html)内容

<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>

这是我的控制器

$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');
}

提交表单后,我收到了错误

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

如何摆脱这种情况以及如何允许上传多个文件?

1 个答案:

答案 0 :(得分:1)

为每个图像分别配置一个数组,然后上传。如下所示

//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]);