For any queries you can reach us at infovistarindia@gmail.com / WhatsApp us: +919158876092

File upload in CodeIgniter

Overview

File uploading class is used to upload files in CodeIgniter.

Following example demonstrates how to upload a file.

  • Upload.php: (application\controllers\Upload.php)
  • upload.php: (application\views\upload.php)
  • upload_success.php: (application\views\upload_success.php)

$this->load->library('upload'); library is used to upload a file.

application/views/upload.php

<html>

<head>
	<title>Upload File</title>
</head>

<body>
	<?php echo $error;?>
	<?php echo form_open_multipart( 'upload/do_upload');?>
	<input type="file" name="file" size="20" />
	<br />
	<br />
	<input type="submit" value="upload" />
	<?php echo form_close(); ?>
</body>

</html>

application/views/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>
</body>

</html>

application/controllers/Upload.php

class Upload extends CI_Controller {

    public function __construct()  {
        parent::__construct();
        $this->load->helper(array('form', 'url'));
    }
    public function index() {
        $this->load->view('upload', array('error' => ' ' ));
    }

    public 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('file')) {
			$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);
		}
    }
}