2017-03-23 6 views
0

ケースには3つのファイル入力があります。彼らのためにそれぞれの名前属性file1file2、およびfile3CodeIgniterファイルのアップロードファイル名がループ内に変更されます

はその後、私のコントローラの内部で、私は、ファイルの名前を変更するためswitch case機能を使用しています。

file1 = 'ラベル' file2 = 'メートル' file3 = 'ルマー'

for ($n=1; $n<=3; $n++) { 
    if (empty($_FILES["file$n"]['name'])) continue; 

    $filext = pathinfo($_FILES["file$n"]['name'],PATHINFO_EXTENSION); 

    switch($n) { 
     case 1: $namae = 'label'; break; 
     case 2: $namae = 'meter'; break; 
     case 3: $namae = 'rumah'; break; 
    } 

    $config['upload_path']  = $upload_path; 
    $config['allowed_types'] = 'gif|jpg|png'; 
    $config['max_size']   = 1024 * 20; 
    $config['file_name']  = $namae; 

    $this->load->library('upload', $config); 

    if (!$this->upload->do_upload("file$n")) { 
     ${"photo$n"."_upload"} = $this->upload->display_errors(); 
    } else { 
     ${"photo$n"."_upload"} = $this->upload->data(); 
     $this->model->simpan_foto($id_survei,$namae,${"photo$n"."_upload"}['file_name']); 
    } 
} 

しかし、それは動作しませんでした! 3つのファイルのすべてに「label」という名前が付けられていますので、label.png、label1.png、label2.png($config['overwrite']を使用しないため)

これを行う方法は?私は、任意の条件を追加していないされて

+0

?私は既に 'case 1:...'、 'case 2:...'、 'case 3:...'とタイプしました。 :/ –

+0

私はあなたのコードを慎重に読みましたが、何か間違ったことはまだ見つかりませんでした。ループの中に(スイッチケースの後で) 'echo $ namae'を試みて、何が起こるかを見ましたか? – koceeng

+0

私は '$ namae'をデータベースに保存する行を' $ this-> model-> simpan_foto($ id_survei、$ namae、$ {"photo $ n"。 "_ upload"}としています。 'file_name']); '、' $ namae'の値は私の 'switch case'に応じて実際に変更されました。ですから、問題は '$ this-> load-> library( 'upload'、$ config);行です。' $ config [] 'はライブラリに更新されていません。 –

答えて

0

このコードを試すよりもわずか3ファイルがある場合は....

for ($n=1; $n<=3; $n++) { 
    if (empty($_FILES["file$n"]['name'])) continue; 

    $filext = pathinfo($_FILES["file$n"]['name'],PATHINFO_EXTENSION); 

    if($n==1){ 
    $namae = 'label'; 
    } 
    if($n==2){ 
    $namae = 'meter'; 
    } 
    if($n==3){ 
    $namae = 'rumah'; 
    } 

    $config['upload_path']  = $upload_path; 
    $config['allowed_types'] = 'gif|jpg|png'; 
    $config['max_size']   = 1024 * 20; 
    $config['file_name']  = $namae; 

    $this->load->library('upload', $config); 

    if (!$this->upload->do_upload("file$n")) { 
     ${"photo$n"."_upload"} = $this->upload->display_errors(); 
    } else { 
     ${"photo$n"."_upload"} = $this->upload->data(); 
     $this->model->simpan_foto($id_survei,$namae,${"photo$n"."_upload"}['file_name']); 
    } 
} 
+0

テストしましたか?あなたのコードと私の違いは何ですか?なぜなら、 'else else'で' switch case'を変更したこと以外は、何の違いも見られないからです。/ –

+0

スイッチケースが動作しないことがあります。 –

関連する問題