连接上传的图像文件名

时间:2011-10-20 05:19:56

标签: php codeigniter codeigniter-2

使用下面的代码上传多个图像,获取图像文件名,与“,”连接并返回值,以便可以使用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;

}  

3 个答案:

答案 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;