2011-10-20 20 views
0

imに連結し、複数の画像をアップロードして画像ファイル名を取得し、「、」で連結してCodeIgniterを使用してデータベースに挿入できるように値を返します。アップロードされた画像ファイル名を

imというのは、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

..あなたは、このコードでは、いくつかの変更を行う必要があると思います'? – imm

+0

@imm http://pastie.org/2730453 $画像のvar_dumpについて – LiveEn

答えて

1

変更するには、最後のファイル名を取得するループ

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

おかげさまで...完璧に動作します! – LiveEn

0

の外にあなたの破を移動し、その後、アレイ

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

を構築するイメージ名の表記をコードがどのように表示されているかを記録します(正常に動作している場合)。 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ループの繰り返しごとにimplodeが起こります。コード行の最後のコメントを見てください。その行がどこに終わるかを述べています。 –

0

私は `print_r`または` $画像の `var_dump`の出力が何であるかを

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; 
関連する問題