2017-01-03 7 views
1

ich habe ein Problem beim Hochladen mehrerer Dateien mit codeigniter das ist meine AnsichtUpload mehrerer Dateien in Codeigniter

<input type="file" name="song_name[]" value="" id="song_name"> 
<input type="file" name="song_name[]" value="" id="song_name"> 
<input type="file" name="song_name[]" value="" id="song_name"> 

dieses Eingabeelement innerhalb Form mit multipart/formdata

Ich schaffe jede Textbox mit Jquery mit dem gleichen Namen dies ist mein Controller-Code für den Upload-Datei

/* Conf */ 
 
$config['upload_path'] = './uploads/test/'; 
 
$config['allowed_types'] = 'gif|jpg|png|mov|mp3|aiff|mpeg|zip'; 
 
$config['max_size'] = '30000'; 
 
$config['max_width'] = '1024'; 
 
$config['max_height'] = '1024'; 
 
$config['file_ext_tolower'] = 'TRUE'; 
 
$config['remove_spaces'] = TRUE; 
 

 
$this->load->library('upload', $config); 
 
$filesCount = count($_FILES['song_name']['name']); 
 
echo $filesCount; 
 
print_r($_FILES['song_name']); exit; 
 
for($i = 0; $i < $filesCount; $i++) { 
 
    $_FILES['userFile']['name'] = $_FILES['song_name']['name'][$i]; 
 
    $_FILES['userFile']['type'] = $_FILES['song_name']['type'][$i]; 
 
    $_FILES['userFile']['tmp_name'] = $_FILES['song_name']['tmp_name'][$i]; 
 
    $_FILES['userFile']['error'] = $_FILES['song_name']['error'][$i]; 
 
    $_FILES['userFile']['size'] = $_FILES['song_name']['size'][$i]; 
 

 
    print_r($_FILES['userFile']); 
 
    $this->upload->initialize($config); 
 
    if($this->upload->do_upload('userFile')) { 
 
     echo "upload"; 
 
     $fileData = $this->upload->data(); 
 
     $uploadData[$i]['file_name'] = $fileData['file_name']; 
 
     $uploadData[$i]['created'] = date("Y-m-d H:i:s"); 
 
     $uploadData[$i]['modified'] = date("Y-m-d H:i:s"); 
 
    } else { 
 
     $error = array('error' => $this->upload->display_errors()); 
 
     print_r($error); 
 
    } 
 
}

so helfen Sie mir bitte für dieses Problem und lassen Sie mich wissen, wie man mit dieser Methode

+0

dank laden @manoj Sharma es jetzt –

Antwort

1
/** 
* @param array $config 
* @param string $file_input_name 
* @param array $resize_configs 
* @return array 
* */ 
protected function multiple_upload($config = array(),$file_input_name,$resize_configs = null) 
{ 
    $fileNames = array(); 

    $conf['upload_path'] = FCPATH . 'assets/img'; 
    $conf['allowed_types'] = 'jpg|png|jpeg'; 
    $conf['max_size'] = 50000; 
    $conf['max_width'] = 3600; 
    $conf['max_height'] = 1800; 
    $conf['maintain_ratio'] = TRUE; 
    $conf['encrypt_name'] = TRUE; 

    foreach ($config as $item => $val){ 
     $conf[$item] = $val; 
    } 

    $this->load->library('upload',$conf); 
    $this->load->library('image_lib'); 
    $files = $_FILES; 
    $cpt = sizeof($_FILES[$file_input_name]['name']); 
    for($i = 0; $i < $cpt; $i++) 
    { 
     $_FILES['userfile']['name']  = $files[$file_input_name]['name'][$i]; 
     $_FILES['userfile']['type']  = $files[$file_input_name]['type'][$i]; 
     $_FILES['userfile']['tmp_name'] = $files[$file_input_name]['tmp_name'][$i]; 
     $_FILES['userfile']['error'] = $files[$file_input_name]['error'][$i]; 
     $_FILES['userfile']['size']  = $files[$file_input_name]['size'][$i]; 

     if($this->upload->do_upload()){ 
      $fileNames[] = $this->upload->file_name; 
      if(!is_null($resize_configs)){ 
       //Image Resizing 
       $img_config['source_image'] = $this->upload->upload_path.$this->upload->file_name; 
       foreach($resize_configs as $key => $value){ 
        $img_config[$key] = $value; 
       } 

       $this->image_lib->initialize($img_config); 
       $this->image_lib->resize(); 
      } 
     } 
    } 

    return $fileNames; 

} 
+0

Diese Funktion arbeitet Präfekt für meine Anwendung arbeiten nur Sie erlaubt Typen Typen ändern andere Konfigurationen benötigen und korrigieren. –

+0

Ja Kumpel jetzt funktioniert es nach etwas Änderung in Ihrem Code nach meiner Anforderung –

+0

Ich habe eine Frage, wie Validierung für Eingabedatei für name = "Song_name []" –

Verwandte Themen