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