CodeIgniter makes working with files uploaded through a form much simpler and more secure than using PHP’s $_FILES array directly. This extends the File class and thus gains all of the features of that class. It provides a raw interface to the uploaded files with a few small features.

 

Step 1: Set Up Your Project

First, ensure you have CodeIgniter 3 set up. Download it from the official CodeIgniter website. Extract the files to your server or local development environment.

 

Step 2: Configure Your Base URL

Open the application/config/config.php file and set your base URL:

 

$this->load->library('upload');

The library is used to upload a file.

 

Step 3: Create the Controller

Create a new controller called Upload.php in the application/controllers directory with the following content:

class Upload extends CI_Controller {

    public function __construct()  {
        parent::__construct();
        $this->load->helper(array('form', 'url'));
    }
    public function index() {
        $this->load->view('upload_form', 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);
		}
    }
}

 

Step 4: Create the Upload Form

Create a new view file called upload_form.php in the application/views directory with the following content:

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

 

Step 5: Create the Success View

Create a new view file called upload_success.php in the application/views directory with the following content:

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

 

Step 6: Test Your Application

Navigate to http://<project_url>/upload in your browser. You should see the upload form. Choose a file to upload and submit the form. If everything is configured correctly, the file should be uploaded to the uploads directory and you should see the success message.