Codeigniter Multiple Files Upload Example
In this tutorial, we will tell you how to Upload Multiple files or multiple images with Codeigniter Framework. whenever we are uploading many images at that time we use the form_open_multipart.
first, we will take the form and some designing with bootstrap and we will also use multiple name attributes for the upload multiple images.
Codeigniter Multiple Files Upload Example, rename image in Codeigniter, multiple images upload, image upload, multiple files upload
Overview
Step 1:Create Upload Directory
Step 2:Create The Controller
Step 3:Create The Model
Step 4:Create The View
Step 1: Create Upload Directory
Now, we will create assets/uploads/ directory on own project directory.
Step 2: Create The Controller
After then, we will create the Multipleimage.php controller in the controller directory.
Here first, we will load the model and helper URL. when the user submits the form and uploads images that time we will check the condition and count how many images upload. we will be uploading images using the for loop. we rename all images using the PATHINFO_EXTENSION and pathinfo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Multipleimage extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('Image_model'); $this->load->helper('url'); } public function index(){ if ($this->input->post('submit') && $_FILES['images']['name'] != '') { $data = array(); $count_images = count($_FILES['images']['name']); for($i=0;$i<$count_images;$i++){ if(!empty($_FILES['images']['name'][$i])){ $ext = pathinfo($_FILES['images']['name'][$i], PATHINFO_EXTENSION); $name = 'image' . rand(100000, 999999) . date("Y-m-d") . '.' . $ext; $_FILES['file']['name'] = $name; $_FILES['file']['type'] = $_FILES['images']['type'][$i]; $_FILES['file']['tmp_name'] = $_FILES['images']['tmp_name'][$i]; $_FILES['file']['error'] = $_FILES['images']['error'][$i]; $_FILES['file']['size'] = $_FILES['images']['size'][$i]; $config['upload_path'] = './assets/uploads/'; $config['allowed_types'] = 'jpg|jpeg|png|gif'; $config['max_size'] = '10000'; $config['file_name'] = $_FILES['images']['name'][$i]; $this->load->library('upload',$config); if($this->upload->do_upload('file')){ $uploadData = $this->upload->data(); $arrData["image_name"] =$name; $this->Image_model->save_image($arrData); } } } } $this->load->view('add'); } } ?> |
Step 3: Create The Model
Now, we will create the Image_model.php model in the model directory.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php defined('BASEPATH') OR exit('No direct script access allowed'); Class Image_model extends CI_Model { function save_image($arrData) { if ($this->db->insert('file_upload_image',$arrData)) { return true; } else { return flase; } } } ?> |
Step 4: Create The View
Finally, we will create the image.php file in the views directory. here in this file use below following code.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | <!DOCTYPE html> <html lang="en"> <head> <title>Codeigniter Multiple Files Upload Example</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script> </head> <body> <div class="container"> <div class="row"> <div class="col-sm-12"> <section class="panel"> <header class="panel-heading col-sm-12"> <h1 class="col-sm-6">Codeigniter Multiple Files Upload Example</h1> </header> <div class="container"> <div class="panel-body"> <div class="form"> <?php $attributes = array('name' => 'frmimage', 'id' => 'frmimage', 'class' => 'imageform form-horizontal adminex-form'); echo form_open_multipart('',$attributes); ?> <div class="form-group col-sm-12 "> <div class="col-lg-8 "> <input type="file" name="images[]" multiple class="form-control"> </div> </div> <div class="form-group col-sm-12"> <div class="col-lg-1 col-xs-offset-2"> <?php $datasubmit = array( 'name' => 'submit', 'id' => 'submit', 'class' => 'btn btn-success', 'value' => 'File Upload' ); echo form_submit($datasubmit); ?> </div> </div> </div> <?php echo form_close(); ?> </div> </div> </section> </div> </div> </div> </body> </html> |