2016-10-06 2 views
0

ファイルをアップロードした後にファイル名を返すときに問題が発生しています。 送信ボタンを押して画像をフォルダにアップロードすると、ファイル名が表示されません。codeigniterでアップロード後にファイル名を配列として取得

これはコードである:

CONTROLLER:

public function add() 
    { 
     $title = $this->input->post('title'); 
     $files = $this->do_upload(); 
     //print_r($files); 
     $this->user->in($title,$files); 
    } 


public function do_upload() 
    {  

     $name_array = array(); 
     $files = $_FILES; 
     $cpt = count($_FILES['userfile']['name']); 
     for($i=0; $i<=$cpt-1; $i++) 
     {   
      $_FILES['userfile']['name']= $files['userfile']['name'][$i]; 
      $_FILES['userfile']['type']= $files['userfile']['type'][$i]; 
      $_FILES['userfile']['tmp_name']= $files['userfile']['tmp_name'][$i]; 
      $_FILES['userfile']['error']= $files['userfile']['error'][$i]; 
      $_FILES['userfile']['size']= $files['userfile']['size'][$i];  

      $this->upload->initialize($this->set_upload_options()); 
      $data = $this->upload->do_upload(); 
      $name_array[] = $data['file_name']; 
     } 

     $names = implode(',', $name_array); 
     return $names; 
    } 

private function set_upload_options() 
    { 
     $config = array(); 
     $config['upload_path'] = './portfolio/'; 
     $config['allowed_types'] = 'gif|jpg|png'; 
     $config['max_size']  = '0'; 
     $config['overwrite']  = FALSE; 

     return $config; 
    } 

MODEL:

public function in($title,$file) 
    { 
     foreach ($title as $key => $n) { 

         $insert[] = array(
           'title' => $n, 
           'file' => $file[$key] 
           ); 
      } 
      $this->db->insert_batch('title',$insert); 
    } 

VIEW:

<?php echo form_open_multipart('location/add'); ?> 
<div> 
    <input type="text" name="title[]"><br> 
    <input type="file" name="userfile[]"> 
</div> 
<br><br> 
<div> 
    <input type="text" name="title[]"><br> 
    <input type="file" name="userfile[]"> 
</div><br> 
<input type="submit" name="" value="enter"> 
<?php echo form_close(); ?> 

$filesprint_r($files);として印刷しようとすると、単に,と表示されます。

参考リンク:唯一の真または偽Multiple files upload (Array) with CodeIgniter 2.0

+0

は、 'do_upload'コントローラの' var_dump($ names) 'の結果を表示します。 –

+0

@RejoanulAlam' string(1) "、"。これはその結果を示すその – Shihas

答えて

1

$this->upload->do_upload()戻ります。 $name_array[] = $this->upload->data('file_name');

+0

ありがとう..それは私のために働く:) – Shihas

+0

喜んでそれが助け! – cssBlaster21895

関連する問題