2011-10-20 76 views
0

im使用下面的代碼上傳多個圖像,獲取圖像文件名,與「,」連接並返回值,以便使用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

是什麼的''$圖像print_r'或'var_dump'輸出'? – imm

+0

@imm http://pastie.org/2730453爲$ images的var_dump – LiveEn

回答

1

變化對圖像名稱的符號來建立一個數組

$imagename[] = $images['upload_data']['file_name']; 

那麼你的破滅移動到循環之外

return implode(",", $imagename); 
+0

謝謝mate ...完美的作品! – LiveEn

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

我不認爲它的代碼**在for循環之外**你已經描述了.. – Chandresh

+0

@Chandresh - for循環之外的唯一項目是$ imagename和implode行的聲明。其他明智的內爆將發生for循環的每一次迭代。查看代碼行末尾的註釋。它指出那條線將在哪裏結束。 –

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;