2017-04-11 5 views
0

Ich kann nicht scheinen, Dateien in codeigniter hochzuladen. Ich weiß nicht, ob das Problem mit der $_FILES liegt, wenn ich versuche, print_r($_FILES) Es zeigt ein leeres Array.Codeigniter: Dateien können nicht hochgeladen werden, Undefined Index

den Controller Anbringen und die Sicht unter:

CONTROLLER

public function upload_files(){ 


    $this->load->library('upload');  
    $filesCount = count($_FILES['userfile']['name']); 

    for($i = 0; $i < $filesCount; $i++){ 
     $pathToUpload="Path/to/folder"; 
     $folder=$id; 
     $uploadPath=$this->create_dir($pathToUpload,$folder); 
     $_FILES['userFile']['name'] = $_FILES['userfile']['name'][$i]; 
     $_FILES['userFile']['tmp_name'] = $_FILES['userfile']['tmp_name'][$i]; 
     $_FILES['userFile']['size'] = $_FILES['userfile']['size'][$i]; 
     $config['upload_path'] = $uploadPath; 
     $config['allowed_types'] = '*'; 

     $this->load->library('upload', $config); 
     $this->upload->initialize($config); 
     $this->upload->do_upload('userfile'); 
     $this->upload->display_errors(); 

    } 
} 

VIEW

<form action="<?php echo base_url(); ?>index.php/Controller_name/upload_files" method="post" enctype="multipart/form-data"> 
<div class="form-group"> 
<label class="control-label col-lg-4">Attach Documents</label> 
<div class="col-lg-4"> 
    <input type="file" class="form-control" size="20" name="usefile[]" multiple="multiple" /> 
</div> 
</div> 
</form> 

Jede Hilfe wird sehr geschätzt. Ich kann nicht herausfinden, warum $_FILES nicht gebucht werden

+0

Können Sie $ config ["allowed_types"] = "*" einstellen; – kodmanyagha

+0

bevor Sie die Anzahl der Dateien überprüfen, verwenden Sie 'iseet ($ _ FILES ['userfile'])' in 'if-Anweisung'. – Gaurav

+0

Ich habe bereits hinzugefügt '*' –

Antwort

0

Ich habe den Code mit Korrekturen aktualisiert.

  1. Remove 1st $this->load->library('upload');
  2. ein Duplikat von Daten $ _FILES erstellen. $files = $_FILES;
  3. Korrigieren Sie diese Zeile. $pathToUpload="./Path/to/folder/";
  4. korrektes Eingabefeld Name von name="usefile[] zu name="userFile[]
  5. die Ansicht Code aktualisiert.

Controller-Code:

public function upload_files(){ 


    //$this->load->library('upload');  
    $filesCount = count($_FILES['userfile']['name']); 
    $files = $_FILES; 
    for($i = 0; $i < $filesCount; $i++){ 
     $pathToUpload="./Path/to/folder/"; 
     $folder=$id; 
     $uploadPath=$this->create_dir($pathToUpload,$folder); 
     $_FILES['userFile']['name'] = $_FILES['userfile']['name'][$i]; 
     $_FILES['userFile']['tmp_name'] = $_FILES['userfile']['tmp_name'][$i]; 
     $_FILES['userFile']['size'] = $_FILES['userfile']['size'][$i]; 
     $config['upload_path'] = $uploadPath; 
     $config['allowed_types'] = '*'; 

     $this->load->library('upload', $config); 
     $this->upload->initialize($config); 
     $this->upload->do_upload('userfile'); 
     $this->upload->display_errors(); 

    } 
} 

Ansicht Datei.

<form action="<?php echo base_url(); ?>index.php/Controller_name/upload_files" method="post" enctype="multipart/form-data"> 
<div class="form-group"> 
<label class="control-label col-lg-4">Attach Documents</label> 
<div class="col-lg-4"> 
    <input type="file" class="form-control" size="20" name="usefile[]" multiple="multiple" /> 
<input type="hidden" name="key" value="123"/> 
<input type="submit" name="upload" value="Upload"/> 
</div> 
</div> 
</form> 
+0

Hey, ich habe es geschafft, es zum Laufen zu bringen. Es gab ein Problem in der Methode. –

Verwandte Themen