2017-08-24 80 views
0

我無法在codeigniter中插入多個具有多個輸入的圖像,我盡力而爲,但無法獲取圖像。無法在codeigniter中插入具有多個輸入的多個圖像

以下是我的代碼。任何人都可以指導我正確的方向嗎?

HTML

<input type="file" name="item_img[]"> 
<input type="file" name="item_img[]"> 
<input type="file" name="item_img[]"> 
<input type="file" name="item_img[]"> 

控制器

if($this->input->post('save')=='save') 
{ 
    $count = count($_FILES['item_img']['size']); 
    for($i=0; $i<$count; $i++) 
    { 

     $config['upload_path'] = './img/items/'; 
     $config['allowed_types']= 'gif|jpg|png'; 
     $this->upload->initialize($config); 
     $count = count($_FILES['item_img']['size']); 
     foreach($_FILES as $key=>$value) 
     $_FILES['userfile']['name']=$value['name'][$i]; 
     $_FILES['userfile']['type'] = $value['type'][$i]; 
     $_FILES['userfile']['tmp_name'] = $value['tmp_name'][$i]; 
     $_FILES['userfile']['error']  = $value['error'][$i]; 
     $_FILES['userfile']['size'] = $value['size'][$i]; 
     $this->load->library('upload', $config); 
     $this->upload->do_upload(); 
     $data = $this->upload->data(); 
     $names='img/items/'.$data['file_name']; 


     $insertdata2=array('i_img'=>$names, 'createdon'=>date("Y-m-d H:i:s")); 
     $this->model->insertData('item_info_master',$insertdata2); 

    } 
} 

模型

public function insertData($table,$data) 
{ 
    $this->db->insert($table, $data); 
} 

回答

0

你可以得到所有的圖像形式O NE輸入

<input type="file" name="item_img" multiple> 

,你可以找回使用$ _FILES

+0

我在與附加功能系統中的一個或多個輸入。 –

+0

然後從輸入名稱中移除大括號,即[] –

0

我看到的一些問題形成的PHP。我首先建議您輸入切換到這一點:

<input type="file" name="item_img" multiple="multiple" /> 

如果你不能做到這一點,那麼你就需要不同的方式處理PHP迴路控制器來獲得這些圖像。這裏有一個問題/答案,Uploading multiple photos using with same name

除了循環之外,還需要在控制器中調整幾件事。對於初學者,$_FILES['item_img']['size']正在獲取文件本身的大小(例如:5MB),而不是文件的數量。所以這個count變量將永遠不會工作。

您還沒有正確加載上傳庫和配置。看看這個問題/答案,Upload multiple files in CodeIgniter,如何加載配置,然後處理多個圖像的一個很好的例子。

希望這會有所幫助。

0

試試這個:

<input type="file" name="gallery[]" multiple> 

和PHP代碼:

if(!is_dir("uploads/gallery/".$id."/")) { 
    mkdir("uploads/gallery/".$id."/"); 
} 
foreach($_FILES['gallery']['name'] as $key=>$val){ 
    //upload and stored images 
    $target_dir = "uploads/gallery/".$id."/"; 
    $target_file = $target_dir.$_FILES['gallery']['name'][$key]; 
    $type = 'image'; 
    if(move_uploaded_file($_FILES['gallery']['tmp_name'][$key],$target_file)){ 
    $this->model->addGallery($id,$target_file,$type,$thumbnail); 
    //$images_arr[] = $target_file; 
    } 
} 

您的歡迎