Codeigniter multiple file upload with example

June 16, 2019 | Category : Codeigniter PHP

I will let you know multiple image upload in codeigniter with simple example. you can learn php codeigniter upload multiple images and store to database. we will use upload library for upload multiple files in codeigniter.

We almost need to implement multiple images or files feature in our project. so you can simply understand and you can implement your existing project with multiple file upload.

So, let's follow few bellow step to upload multiple file or images example:

Download Fresh Codeigniter 3

In First step we will download fresh version of Codeigniter 3, so if you haven't download yet then download from here : Download Codeigniter 3.

Add Route

In this step you have to add some route in your route file. So first we will create route for image uploading put the bellow content in route file:



defined('BASEPATH') OR exit('No direct script access allowed');

$route['default_controller'] = 'welcome';

$route['404_override'] = '';

$route['translate_uri_dashes'] = FALSE;

$route['image-upload'] = 'ImageUpload';

$route['image-upload/post']['post'] = "ImageUpload/uploadImage";

Create Controller

In this step, we have to create "ImageUpload" controller with index() and uploadImage(). so create Items.php file in this path application/controllers/Items.php and put bellow code in this file:



class ImageUpload extends CI_Controller {


* Manage __construct


* @return Response


public function __construct() {





* Manage index


* @return Response


public function index() {




* Manage uploadImage


* @return Response


public function uploadImage() {

$data = [];

$count = count($_FILES['files']['name']);



$_FILES['file']['name'] = $_FILES['files']['name'][$i];

$_FILES['file']['type'] = $_FILES['files']['type'][$i];

$_FILES['file']['tmp_name'] = $_FILES['files']['tmp_name'][$i];

$_FILES['file']['error'] = $_FILES['files']['error'][$i];

$_FILES['file']['size'] = $_FILES['files']['size'][$i];

$config['upload_path'] = 'uploads/';

$config['allowed_types'] = 'jpg|jpeg|png|gif';

$config['max_size'] = '5000';

$config['file_name'] = $_FILES['files']['name'][$i];



$uploadData = $this->upload->data();

$filename = $uploadData['file_name'];

$data['totalFiles'][] = $filename;




$this->load->view('imageUploadForm', $data);




Create View

In this step we will create imageUploadForm.php view file . In this file we will write design of html form using form helper and url helper. So let's update following file:


<!doctype html>



<title>Codeigniter - Upload Multiple Files and Images Example -</title>



<strong><?php if(isset($totalFiles)) echo "Successfully uploaded ".count($totalFiles)." files"; ?></strong>

<form method='post' action='/image-upload/post' enctype='multipart/form-data'>

<input type='file' name='files[]' multiple=""> <br/><br/>

<input type='submit' value='Upload' name='upload' />




Ok Now we are ready to run Above example, But We have to create "uploads" folder on your root directory before run example. all images will upload on "uploads" directory so make sure permission too.

So let's run bellow command on your root directory for quick run:

php -S localhost:8000

Now you can open bellow URL on your browser:


Make Sure, First you have to set base URL on your bellow configuration file :


$config['base_url'] = 'http://localhost:8000/';

I hope it can help you...

Download Source Code form here: Download From Github