我有一个将插入用户名,ID的页面,用户必须能够上传最多10张图片。
我遇到的主要问题是使用codeigniter上传多个图像。
有人可以建议我如何通过每个图像路径 单个图像到数组,所以我可以将它传递给数据库。
如果用户选择上传少于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>
样本控制器
$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
}
任何帮助将不胜感激。
答案 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
}