2017-08-26 1 views
0

Ici, j'essaie d'insérer plusieurs images dans la base de données, mais elles ne sont pas insérées. Les images sont téléchargées dans le dossier correctement, mais ne savent pas pourquoi ne pas entrer dans la base de données. Voici ma fonction de téléchargement d'imagesPourquoi le chargement multiple n'est-il pas inséré dans la base de données

public function multiple_upload_files($path) 
{ 
    $images = array(); 
    if(!empty($_FILES['files']['name'])){ 
     $filesCount = count($_FILES['files']['name']); 
     for($i = 0; $i < $filesCount; $i++){ 
      $_FILES['file']['name'] = $_FILES['files']['name'][$i]; 
      $_FILES['file']['type'] = $_FILES['files']['type'][$i]; 
      $_FILES['file']['tmp_name'] = $_FILES['files']['tmp_name'][$i]; 
      $_FILES['file']['error'] = $_FILES['files']['error'][$i]; 
      $_FILES['file']['size'] = $_FILES['files']['size'][$i]; 
      $config['upload_path']= './uploads/'.$path.'/'; 
      $config['allowed_types'] = 'gif|jpg|png|jpeg'; 
      $config['max_size']= '2000'; 
      $config['max_width'] = '4000'; 
      $config['max_height'] = '6500'; 
      $config['file_name']='upld-file'.time(); 
      $this->load->library('upload', $config); 
      $this->upload->initialize($config); 
     if ($this->upload->do_upload("file")) { 

      $images[] = $this->upload->data(); 
     } 
     else { 
     redirect('admin/view-product'); 

     } 
    } 
      return $images; 
} 

Voici mon code d'insertion

$path='products'; 
    if($this->multiple_upload_files($path)) 
    { 
     $img=implode(',',$images); 
     $data = array('product_name' => $this->input->post('product_name'),'image'=>$img); 
     $status = $this->Admin_model->db_insert($table='products',$data); 
     if($status) 
     { 
      $this->session->set_flashdata('message','Product added Successfully'); 
     } 
     else 
     { 
      $this->session->set_flashdata('message','Insertion failed'); 
     } 

Le problème est que les images sont téléchargées dans le dossier téléchargé, mais pas à la base de données.

+1

double possible de [envoyer plusieurs fichiers d'image avec CodeIgniter] (https://stackoverflow.com/questions/40778683/multiple-image-upload-with-codeigniter) –

Répondre

2

Vous renvoyez un tableau d'images à partir de la méthode sans le recevoir. changer votre code comme ci-dessous

$path='products'; 
$images= $this->multiple_upload_files($path); 
if($images) 
{ 
    $img=implode(',',$images); 
    $data = array('product_name' => $this->input->post('product_name'),'image'=>$img); 
    $status = $this->Admin_model->db_insert($table='products',$data); 
    if($status) 
    { 
     $this->session->set_flashdata('message','Product added Successfully'); 
    } 
    else 
    { 
     $this->session->set_flashdata('message','Insertion failed'); 
    }