2017-09-01 11 views
0

CodeIgniterの与えられることを期待し、私は、データベース内で動的に画像を追加したいです。どうやってやるの?のbasename()は、パラメータ1は、文字列配列。これは私のコードである

これはこれはあなたのエラーが正確にあなたのタイトルの状態でのエラーメッセージ私の見解

<input type="file" name="userfile[]"> 
+0

実際の質問をして、これを確認してください。htt38://stackoverflow.com/help/mcve –

+0

'basename($ _ FILES [" userfile "] [" name "]'そしてあなたは何を変えるかを見るでしょう。 – Tpojka

答えて

0

である私のコントローラ

if($this->input->post('title')) 
      { 

       $values['prootherinfo']=$this->AdminModel->select_table('pro_otherinfo'); 
       foreach($values['prootherinfo']->result() as $r) 
       $image=$r->othr_info_image; 
       $path=FCPATH."assets/images/".$image; 
       unlink($path); 
       $target_dir = FCPATH."assets/images/"; 
       $arrfile = pos($_FILES); 
       $target_file = $target_dir . basename($_FILES["userfile"]["name"]); 
       move_uploaded_file($_FILES["userfile"]["tmp_name"], $target_file); 



        $title = $this->input->post('title', true); 
        $desc = $this->input->post('desc', true); 
        $proid = $this->input->post('pro_id', true);  


       foreach ($title as $i => $a) { // need index to match other properties 
        foreach ($desc as $dd => $d) 

        $keyt = array(
         'othr_info_image'=>$_FILES["userfile"]["name"], 
         'title' => $a, 
         'description' => $d, 
         'pro_id' => $proid 

        ); 
        //print_r($keyt); 

        if (!$this->db->insert('pro_otherinfo', $keyt)) { 
         // quit if insert fails - adjust accordingly 
         print_r($keyt); 
         die('Failed insert'); 
        }  
       } 
      } 

です。あなたが実際にそれを単に印刷することで、グローバル$ _FILES配列であるかを見ることができます。

print_r($_FILES); 

それは次のようになります。あなたは名前インデックスが配列され見ることができるように

Array (
    [userfile] => Array (
     [name] => Array (
       [0] => file.txt 
      ) 
     [type] => ... 
    ) 

) 

と文字列ではありません。これらのファイルのうち、使用したいものを選択するか、またはすべてを使用する必要があります。あなたの例では、あなたがすべてのインデックスが適切に設定されているかどうかを確認する必要がもちろん

$target_file = $target_dir . basename($_FILES["userfile"]["name"][0]); 

を使用できることを意味

関連する問題