2014-05-23 72 views
1

我有一個codeigniter文件上傳庫的問題。我試圖上傳多個文件(7個圖像),我將它們重命名,然後上傳到我的服務器文件系統。但我無法獲得新的名稱以保存在我的數據庫中。重命名文件上傳後的Codeigniter如何將新文件名保存到我的數據庫

這裏是我的控制器

if (isset($_POST['carform'])) 
{ 
       $dir = './uploads/cars'; 
       $config['upload_path'] = $dir; 
       $config['allowed_types'] = 'jpg|jpeg|png'; 
       $config['max_size'] = '2048'; 
       $config['max_width'] = '1024'; 
       $config['max_height'] = '768'; 
       $config['remove_spaces'] = 'TRUE'; 
       $uid = $this->tank_auth->get_user_id(); 
       $config['file_name'] = time().$uid; 
       $this->load->library('upload', $config); 

      foreach($_FILES as $field => $file) 
      { 

       if($file['error'] == 0) 
       { 

        // So lets upload 
        if ($this->upload->do_upload($field)) 
        { 


         $data = array('upload' => $this->upload->data()); 

         $this->cars_model->set_car($data);//end foreach loop..... 
         $id = $this->db->insert_id(); 
       redirect('/cars/details/'.$id.''); 

        }else 
        { 
         $errors = $this->upload->display_errors(); 
         echo($errors); 
        } 
       } 

      } 


     }//end if statement ... 

回答

0

你確實有內笨的輔助函數文件上傳類:$this->upload->data()。爲了得到文件名這樣做:

$my_data=$this->upload->data(); 
$file_name=$my_data['filename']; 

檢查手冊here

編輯: 將數據插入到數據庫假設$ filename是你首先需要它爆炸成一個陣列

$filename="14010989464.jpg 140109894641.jpg 140109894642.jpg 140109894643.jpg 140109894644.jpg 140109894645.jpg 140109894646.jpg"; 
$fn=explode(' ',$filename); 
字符串

然後你可以插入數據(imagename)到你的表test這樣的列img像這樣:

foreach ($fn as $key=>$val){ 
    $data['img']=$fn[$key]; 
    $this->db->insert('test', $data); 
} 
+0

對我來說,我上傳多張圖片(7)當我這樣做的print_r($文件名),我得到這樣的結果:14010989464.jpg 140109894641 .jpg 140109894642.jpg 140109894643.jpg 140109894644.jpg 140109894644.jpg 140109894646.jpg。我現在的問題是如何獲取單個文件名保存在我的數據庫。 – chuksleomc

+0

檢查我編輯的答案 – Vickel

0

可以使用

例如:他們的

$this->load->library('upload', $config); 
for($i=1;$i<=5;$i++) //5 = total image 
{ 
if (!$this->upload->do_upload('userfile'.$i)) 
{ 
    $data['error'] = array('error' => $this->upload->display_errors()); 

} 
else 
{ 
    $upload_data = $this->upload->data(); 
    $data[$i] = $upload_data['file_name']; 
} 
} 
    $data_x = array(

       'image1' => $data['1'], 
       'image2' => $data['2'], 
       'image3' => $data['3'], 
       'image4' => $data['4'], 
       'image5' => $data['5'], 
    ); 
相關問題