使用codeigniter进行多个图像上传

时间:2011-10-18 14:19:15

标签: php codeigniter file-upload codeigniter-2

我有一个将插入用户名,ID的页面,用户必须能够上传最多10张图片。

我遇到的主要问题是使用codeigniter上传多个图像。

  1. 有人可以建议我如何通过每个图像路径 单个图像到数组,所以我可以将它传递给数据库。

  2. 如果用户选择上传少于10张图片,例如2或5张 那我怎么能忽略一个文件没有出现的错误 selected和jst仅传递已上传的图像。

    <form method="post" action="uploader/go" enctype="multipart/form-data">
    <input name="username" type="text" /><br />
    <input name="nid" type="text" /><br />
    <input type="file" name="image1" /><br />
    <input type="file" name="image2" /><br />
    <input type="file" name="image3" /><br />
    <input type="file" name="image4" /><br />
    <input type="file" name="image5" /><br />
    <input type="file" name="image6" /><br />
    <input type="file" name="image7" /><br />
    <input type="file" name="image8" /><br />
    <input type="file" name="image9" /><br />
    <input type="file" name="image10" /><br />
    <input type="submit" name="go" value="Upload!!!" />
    </form>
    
  3. 样本控制器

    $image_data=array('image_info' => $this->upload->data('image')); 
    $image_path=$image_data['image_info']['full_path'];
    
    $data =array(
                'id'=>uniqid('id_'),
                        'nID'=>$this->input->post('nid'),
                'username'=>$username,
                'image1'=>$image_path
    }
    

    任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

将输入名称更改为:

<input type="file" name="image[1]" /><br />
<input type="file" name="image[2]" /><br />
<input type="file" name="image[3]" /><br />

$this->upload->data('image')将是一个数组。

然后你可以这样做:

foreach($this->upload->data('image') as $image) {
   passItToTheDatabase(); // your custom function

}