2017-04-11 11 views
0

codeigniterにファイルをアップロードできないようです。問題が$_FILESにあるかどうかわかりません。試してみるとprint_r($_FILES)空の配列が表示されます。Codeigniter:ファイルをアップロードできません。未定義のインデックス

CONTROLLER任意の助けを大幅に理解されるであろう

<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> 

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:コントローラと以下のビューを取り付け

。なぜ$_FILESが投稿されていないのか分かりません。

+0

$ config ["allowed_types"] = "*";ファイル数をチェックする前に – kodmanyagha

+0

は 'if statement'に' iseet($ _ FILES ['userfile']) 'を使用します。 – Gaurav

+0

すでに '*'が追加されています –

答えて

0

私は訂正してコードを更新しました。

  1. Remove 1st $this->load->library('upload');
  2. $ _FILESデータの複製を作成します。 $files = $_FILES;
  3. この行を修正してください。 $pathToUpload="./Path/to/folder/";
  4. 入力フィールド名が正しく入力されました。name="usefile[]name="userFile[]
  5. ビューコードが更新されました。

コントローラコード:

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(); 

    } 
} 

表示ファイル。

<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

ねえ、私はそれを働かせることができた。メソッドに問題がありました。 –

関連する問題