Image upload is the most important chapter in Web Development. I am creating Web applications from last 3 years using codeigniter and one of the most frequently used codes in my projects is uploading images and save them into the database.So today I will show you how to upload images using codeigniter 3 and save them on the database.
Lets discuss about the steps to upload images using codeigniter 3 and save them on the database. The process is very simple.First we upload the image in a folder associated with the project and then we save the url of uploaded image on the database.It is as simple as bellow :
Step I - Download Codeigniter 3: You can download Codeigniter 3 from their official website - https://www.codeigniter.com/download .You can also Download Github repository of Codeigniter 3 - https://github.com/bcit-ci/CodeIgniter .
Step II - Create Views: First Setup the codeigniter base_url() function and then go to application>>views folder. In views folder of codeigniter 3 you can see the file - welcome_message.php , edit this file and Create an Image Upload form.You can also copy and pest the bellow code to create Image upload form.
<html> <head> <title>Upload Image Form</title> </head> <body> <?php echo form_open_multipart('Welcome/image_upload/' , array('id' => 'img'));?> <h3>Image Upload Form</h3> <input type="file" name="pic" tabindex="2" required> <input type="text" name="alt" placeholder="Image Alt Text" tabindex="1" required> <button type="submit" id="img-submit" data-submit="Sending">Submit</button> </form> </body> </html>You can also add some CSS codes to Design the form.
Step III - Create Database and Image Upload Folder: Now create a folder in your project where images will be uploaded and create a table - 'image_upload' in your project database from phpmyadmin, you can also copy and pest the bellow code to create a table :
CREATE TABLE `image_upload` ( `image_url` VARCHAR( 50 ) NOT NULL , `alt` VARCHAR( 50 ) NOT NULL ) ENGINE = MYISAM ;Step IV - Controller: Now go to application>>Controller , there will be a php file names 'Welcome.php'. First you need to add form and url helper and load the database like bellow:
public function __construct() { parent::__construct(); $this->load->database(); $this->load->helper('url'); $this->load->helper('form'); }Now create an image upload function in your Controller as bellow:
function do_upload() { $url = "../images"; $image=basename($_FILES['pic']['name']); $image=str_replace(' ','|',$image); $type = explode(".",$image); $type = $type[count($type)-1]; if (in_array($type,array('jpg','jpeg','png','gif'))) { $tmppath="images/".uniqid(rand()).".".$type; // uniqid(rand()) function generates unique random number. if(is_uploaded_file($_FILES["pic"]["tmp_name"])) { move_uploaded_file($_FILES['pic']['tmp_name'],$tmppath); return $tmppath; // returns the url of uploaded image. } } else { redirect(base_url() . 'index.php/Welcome/not_img', 'refresh');// redirect to show file type not support message } }The function 'do_upload' is uploading the selected image from the form of welcome_message.php into the folder you have created in Step-III and returns the image url.
Now we will save the url of uploaded image into MySQL database.See the bellow code:
function image_upload() { $data ['image_url']= $this->do_upload(); $data ['alt']= $this->input->post('alt'); $this->db->insert('image_upload', $data); redirect(base_url() . 'index.php/Welcome/', 'refresh');// Redirect to Success page }The function 'image_upload' will save the image url on your database.You can view the uploaded images by using bellow code:
<?php $images = $this->db->get('image_upload')->result_array(); foreach($images as $row): ?> <img src="<?php echo base_url().$row['image_url'];?>" class="img" alt="" /> <? endforeach; ?>So this are the simple steps to upload image using Codeigniter 3 and save in MySQL database.Thanks for reading this. If you fill any problem regarding this example of code you can say that in comment section.