Multiple file upload in codeigniter

Leave a Comment
Hello guy's, Today we gonna look how to upload Multiple file image with codeigniter. After single image upload with codeigniter. We gonna look multiple image upload in codeigniter. First we gonna look multi upload with same controller function after we move that function into helper so we can use somewhere else also. So let's start with controller file

Multi_upload.php (controller)

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Multi_upload extends CI_Controller {

 function __construct(){
  parent::__construct();
 }

 public function index()
 {
  $arrData['error'] = '';
  $arrData['content'] = 'multi_image_upload';
  $this->load->view('template',$arrData);
 }

 public function do_multi_upload(){
  if($this->input->post('submit_form')){
   if($_FILES["profile_pic"]["tmp_name"]) {
    $this->do_miltiupload_files('./uploads/', 'M', $_FILES['profile_pic']); // call the function with params
   }
  }
 }

 function do_miltiupload_files($path, $title, $files)
    {   
        $config = array(
            'upload_path'   => $path,
            'allowed_types' => 'jpg|gif|png',
            'overwrite'     => 1,                       
        );

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

        $images = array();

        foreach ($files['name'] as $key => $image) {
            $_FILES['multi_images[]']['name']= $files['name'][$key];
            $_FILES['multi_images[]']['type']= $files['type'][$key];
            $_FILES['multi_images[]']['tmp_name']= $files['tmp_name'][$key];
            $_FILES['multi_images[]']['error']= $files['error'][$key];
            $_FILES['multi_images[]']['size']= $files['size'][$key];
            // here we change file name on run time
            $fileName = $title .'_'. $image;
            $images[] = $fileName;
            $config['file_name'] = $fileName; //new file name

            $this->upload->initialize($config); // load new config setting 

            if ($this->upload->do_upload('multi_images[]')) { // upload file here
             echo "<pre>";
                print_r($this->upload->data());
                // performs your operations
            } else {
                return false;
            }
        }
        return $images;
    }
}
After controller let's create view part
<html>
<head>
<title>Upload Form</title>
</head>
<body>

<?php echo form_open_multipart('multi_upload/do_multi_upload');?>
   <input type="file" name="profile_pic[]" size="20" multiple/>
   <br /><br />
   <input type="submit" value="upload" name="submit_form"/>
</form>

</body>
</html>
now you can hit url on your localhost and try to select multiple file and upload. You get your data and performs your database operations. After uploading image you get this screen
Multiple file upload in codeigniter

How to upload image in codeigniter

Leave a Comment
Hello guy's, Today we gonna look how to upload image with codeigniter. In this tutorial we will use CodeIgniter's File Uploading Class which help to upload file. Using this class we can also set various preferences, restricting the type and size of the files.

Creating the Upload Form i.e. image_upload.php (View)

<html>
<head>
<title>Upload Form</title>
</head>
<body>

<?php echo form_open_multipart('image_upload/do_upload');?>
<input type="file" name="profile_pic" size="20" />
<br /><br />
<input type="submit" value="upload" name="submit_form"/>
</form>
<?php if($error) { echo ($error['error']); }?>

</body>
</html>
You'll notice we are using a form helper to create the opening form tag. File uploads require a multipart form, so the helper creates the proper syntax for you. You'll also notice we have an $error variable. This is so we can show error messages in the event the user does something wrong.

image_upload.php (Controller)

Using a text editor, create a controller called image_upload.php. In it, place this code and save it to your applications/controllers/ folder:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Image_upload extends CI_Controller {

function __construct(){
 parent::__construct();
        $this->load->helper(array('form', 'url'));
}

public function index()
{
 $arrData['error'] = '';
 $arrData['content'] = 'image_upload';
 $this->load->view('template',$arrData);
}

public function do_upload(){
 if($this->input->post('submit_form')){
  $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('profile_pic'))
  {
                    $error = array('error' => $this->upload->display_errors());
   $arrData['error'] = $error;
   $arrData['content'] = 'image_upload';
   $this->load->view('template',$arrData);
  }
  else
  {
          $arrData['upload_data'] = $this->upload->data();
   $arrData['content'] = 'upload_success';
   $this->load->view('template',$arrData);
  }
 }
}
}
Now create uploads upload folder in root of your CodeIgniter installation and set its file permissions to 777.Now the last thing creating upload_success view

Creating upload Success view i.e upload_success.php (view)

<html>
<head>
<title>Upload Form</title>
</head>
<body>

<h3>Your file was successfully uploaded!</h3>
<ul>
<?php echo "<pre>"; print_r($upload_data); ?>
</ul>
<p><?php echo anchor('image_upload', 'Upload Another File!'); ?></p>
</body>
</html>
To try your form, visit your http://localhost/Proejct_foldername/image_upload. If you did't remove your index.php from url then you have to try with index.php in your url. Learn Here how to remove index.php from codeigniter Try uploading an image file (either a jpg, gif, or png). If the path in your controller is correct it should work. After successfully upload image you will get below output on upload_success page.
How to upload image in codeigniter

Powered by Blogger.