2014-11-25 3 views
0

Я пытаюсь загрузить содержимое загруженного файла. Но значение post возвращает NULL. Но значения $_FILES получаются правильно. Также попробовал $this->input->post(), но он по-прежнему возвращает NULL.Post Returns NULL

Вид: (upload_contacts.php)

<form enctype='multipart/form-data' method='POST'> 
    <table> 
     <tr> 
      <td> 
      Choose a file to upload: <input name='uploadedfile' type='file' /> 
      </td> 
      <br/> 
     </tr> 
     <tr> 
      <td> 
       <input type='submit' value='submit' /> 
      </td> 
     </tr> 
    </table> 
</form> 

Контроллер: (contact.php)

public function uploadCSV() 
{ 
    //todo : Crate view 

    $this->config->load('je_settings',TRUE); 
    $tally_folder_path = $this->config->item('folder_path'); 
    if(! empty($_FILES['uploadedfile']['name'])) 
    { 
     var_dump($_FILES['uploadedfile']['name']); 
     var_dump($_POST); 
     die(); 
     $file_type = $_FILES['uploadedfile']['type']; 
     $allowed = array('text/csv','text/comma-separated-values'); 
     if(! empty($_FILES['uploadedfile']['name']) && in_array($file_type, $allowed)) 
     { 
      $tally_src_file = $tally_folder_path . basename($_FILES['uploadedfile']['name']); 
      move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $tally_src_file); 
     } 
     else 
     { 
      die("No file specified or Format not supported"); 
     } 
     $path = "sudo chmod 777 ".$tally_src_file; 
     shell_exec($path); 
     $this->user($tally_src_file); 
    } 
    else 
    { 
     $this->data['om_content'] = $this->load->view('upload_contacts', $this->data, TRUE); 
     $this->data['content'] = $this->load->view('om/_default', $this->data, TRUE); 
     $this->load->view('common/default', $this->data); 
     //$data = array(); 
     //$data['om_content'] = $this->load->view('upload_contacts',$data,TRUE); 

     //$this->load->view("common/default",$this->data); 
    } 

} 

public function user($path) 
{ 
    $fp = fopen($path, "r"); 
    $delimiter = ','; 

    while($row = fgetcsv($fp,1000,$delimiter)) 
    { 
     if($row[0] != 'register_first_name') 
     { 
      $status = 0; 
      $response = ''; 
      $value = array(); 
      $name = ucwords(strtolower($row[0])); 
      $name_array = explode(' ', $name); 
      $value['register_first_name'] = $name_array[0]; 
      unset($name_array[0]); 
      $value['register_last_name'] = 'NLN'; 

      if(isset($name_array)) 
      { 
       $value['register_last_name'] = implode(' ', $name_array); 
       if(empty($value['register_last_name'])) 
       { 
        $value['register_last_name'] = 'NLN'; 
       } 
      } 
      $value['register_phone_number'] = '8888888888'; 
      $value['register_email_address'] = $row[1]; 
      $value['register_username'] = $row[2]; 
      $value['user_group_id'] = $row[3]; 

      $value['register_user'] = 'Submit'; 

      $value['register_password'] = $this->generate_password(); 

      $value['register_confirm_password'] = $value['register_password']; 
      //var_dump($this->input->post('register_user')); 
      $this->register_corp_account($value); 
     } 
    } 
} 
+0

Ваш '

' Отсутствующий атрибут 'действие' –

+1

уменьшить код – Vishnu

+0

Какие значения вы ожидаете в массиве' $ _POST'? Я не вижу никаких других элементов, кроме поля файла? – Cyclonecode

ответ

0

вы должны установить имя представить входные данные

<input type='submit' value='submit' name="submit" /> 
+0

Почему нам нужно имя? – Torrezzzz

+0

@Torrezzzz вы читаете документы о теге ввода? Вам нужно имя для определения массива POST. –

+0

, потому что все входы в форме должны иметь имя, доступ к которому можно получить в $ _POST, у вас есть два ввода, первый тип - это файл и к нему обращаются с помощью $ _FILES ['uploadedfile'], а к другому входу обращается $ _POST ['submit '] – h3dgh

0

может быть, вы не хватает form_action="abc.xyz" в <form enctype='multipart/form-data' method='POST'>, поэтому он возвращает значение NULL