CodeIgniter From Post Data Not Going through CodeIgniter From Post Data Not Going through codeigniter codeigniter

CodeIgniter From Post Data Not Going through


You can add this form attribute:
enctype="multipart/form-data;charset=utf-8"
Instead of:
enctype="multipart/form-data"
You can see this link.


Actually, the multipart data like image/zip or some other blob data will be included in $_FILES array, not $_POST array.
I recommend you to use the upload library.

view:upload_form.php

<html><head><title>Upload Form</title></head><body><?php echo $error;?><?php echo form_open_multipart('upload/do_upload');?><input type="file" name="userfile" size="20" /><br /><br /><input type="submit" value="upload" /></form></body></html>

view:upload_success.php

<html><head><title>Upload Form</title></head><body><h3>Your file was successfully uploaded!</h3><ul><?php foreach($upload_data as $item => $value):?><li><?php echo $item;?>: <?php echo $value;?></li><?php endforeach; ?></ul><p><?php echo anchor('upload', 'Upload Another File!'); ?></p></body></html>

controller:upload.php

<?phpclass Upload extends CI_Controller { function __construct() {  parent::__construct();  $this->load->helper(array('form', 'url')); } function index() {   $this->load->view('upload_form', array('error' => ' ' )); } function do_upload() {  $config['upload_path'] = './uploads/';  $config['allowed_types'] = 'gif|jpg|png';  $config['max_size'] = '100';  $config['max_width']  = '1024';  $config['max_height']  = '768';  $this->load->library('upload', $config);  if ( ! $this->upload->do_upload())  {   $error = array('error' => $this->upload->display_errors());   $this->load->view('upload_form', $error);  }   else  {   $data = array('upload_data' => $this->upload->data());   $this->load->view('upload_success', $data);  } } }?>

And that's all


You need fix your do_upload, like this..

$this->upload->do_upload('name-of-input-file-element-of-your-form')

For example, in your view code, you have:

<input type="file" name="userfile" size="20" />

So, your do_upload line, should be like this:

$this->upload->do_upload('userfile')

Saludos!