使用下面的代码上传多个图像,获取图像文件名,与“,”连接并返回值,以便可以使用CodeIgniter插入数据库。
我遇到的问题是无法使用implode()连接文件名。
有人可以告诉我我做错了什么吗?
function upload(){
$config['upload_path'] = './uploadsim/';
$config['allowed_types'] = 'gif|jpg|jpeg';
$config['max_size'] = '0';
$config['max_width'] = '0';
$config['max_height'] = '0';
$this->load->library('upload', $config);
for($i = 1; $i < 6; $i++) {
$upload = $this->upload->do_upload('image'.$i);
if($upload === FALSE) continue;
$images = array('upload_data'=>$this->upload->data());
$imagename= $images['upload_data']['file_name'];
$impl= implode(",", $imagename);
}
return $impl;
}
答案 0 :(得分:1)
更改图像名称上的表示法以构建数组
$imagename[] = $images['upload_data']['file_name'];
然后将你的内爆移动到循环之外
return implode(",", $imagename);
答案 1 :(得分:0)
您只能按照代码显示的方式获取最后一个文件的文件名(如果可以的话)。为了得到与a结合的图像名称,你可以做几件事。
$imagename = ""; #before the for loop
$imagename .= ',' . $images['upload_data']['file_name']; #in the for loop
或
$imagename[($i-1)] = $images['upload_data']['file_name']; # in the for loop
$impl = imploade(",",$imagename; # outside the for loop
答案 2 :(得分:0)
我认为您需要在此代码中进行一些更改..
for($i = 1; $i < 6; $i++) {
$upload = $this->upload->do_upload('image'.$i);
if($upload === FALSE) continue;
$images = array('upload_data'=>$this->upload->data());
$imagename[] = $images['upload_data']['file_name'];
}
$impl = implode(",", $imagename);
return $impl;