In this i have share module for upload image with creating multiple thumbnail in codeigniter. 1) Create MySQL database and table : ...

Upload image , create multiple thumbnail using codeigniter

In this i have share module for upload image with creating multiple thumbnail in codeigniter.

1) Create MySQL database and table :

<?php
CREATE TABLE `picture` (
  `id` int(11) NOT NULL,
  `url` int(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `picture` ADD PRIMARY KEY (`id`);.
ALTER TABLE `picture`  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
?>

2)Craete a model file in application/models


if (!defined('BASEPATH'))
    exit('No direct script access allowed'); 
class Upload_model extends CI_Model { 
    private $_ID;
    private $_url; 
    public function setID($ID) {
        $this->_ID = $ID;
    } 
    public function setURL($url) {
        $this->_url = $url;
    }
    public function getPicture() {        
        $this->db->select(array('p.id', 'p.url'));
        $this->db->from('picture p');  
        $this->db->where('p.id', $this->_ID);    
        $query = $this->db->get();
       return $query->row_array();
    }   
    public function create() {
        $data = array(
            'url' => $this->_url,
        );
        $this->db->insert('picture', $data);
        return $this->db->insert_id();
    }
}
?>

3) Upload constant file in config

<?php $root = "http://" . $_SERVER['HTTP_HOST']; $root .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']); $constant['base_url'] = $root; define('HTTP_UPLOAD_LARGE_PATH', $constant['base_url'] . 'assets/uploads/_large/'); define('HTTP_UPLOAD_MEDIUM_PATH', $constant['base_url'] . 'assets/uploads/_medium/'); define('HTTP_UPLOAD_THUMB_PATH', $constant['base_url'] . 'assets/uploads/_thumb/'); define('HTTP_UPLOAD_MOBILE_PATH', $constant['base_url'] . 'assets/uploads/_mobile/'); define('ROOT_UPLOAD_PATH', BASH_PATH . 'assets/uploads/'); ?>

4) Craete controller


if (!defined('BASEPATH'))
    exit('No direct script access allowed'); 
class Upload extends CI_Controller { 
    public function __construct() {
        parent::__construct();
        $this->load->model('Upload_model', 'upl');
    }
    public function index() {
        $data['page'] = 'upload-img';
        $data['title'] = 'Upoad Image | TechArise';        
        $this->load->view('upload/index', $data);
    }
    public function save() {      
        if ($this->input->post('upload_img')) {
            $path = ROOT_UPLOAD_PATH;            
            $initi = $this->upload->initialize(array(
                "upload_path" => $path,
                "allowed_types" => "gif|jpg|jpeg|png|bmp",
                "remove_spaces" => TRUE
            ));
            $imagename = 'no-img.jpg';
            if (!$this->upload->do_upload('imageURL')) {
                $error = array('error' => $this->upload->display_errors());
                echo $this->upload->display_errors();
            } else {
                $data = $this->upload->data();
                $imagename = $data['file_name'];
            } 
            $image_sizes = array('_mobile'=>array(75,75), '_thumb' => array(300, 200),'_medium' => array(500, 270), '_large' => array(750, 406));
            $this->load->library('image_lib');
            foreach ($image_sizes as $key=>$resize) {
                $config = array(
                    'source_image' => $data['full_path'],
                    'new_image' => ROOT_UPLOAD_PATH .'/'.$key,
                    'maintain_ratio' => FALSE,
                    'width' => $resize[0],
                    'height' => $resize[1],
                    'quality' =>70,
                );
                $this->image_lib->initialize($config);
                $this->image_lib->resize();
                $this->image_lib->clear();
            }            
            $this->load->library('image_lib', $config);
            $this->image_lib->resize();
            $this->upl->setURL($imagename);            
            $this->upl->create();                          
            $this->session->set_flashdata('img_uploaded_msg', '<div class="alert alert-success">Image uploaded successfully!</div>');
            $this->session->set_flashdata('img_uploaded', $imagename);
            redirect('/');
        }
    }
}
?>

5) Create view :

<?php $this->load->view('templates/header'); ?> <div class="row"> <div class="col-lg-12"> <h2>Upload Image and Create Multiple Thumbnail Sizes using CodeIgniter with MySQL</h2> </div> </div><!-- /.row --> <div class="row"> <div class="col-lg-12"> <?php echo $this->session->flashdata('img_uploaded_msg'); ?> </div> </div><!-- /.row --> <?php if(empty($this->session->flashdata('img_uploaded'))) { ?> <div class="row"> <form action="<?php echo site_url();?>upload/save" class="img-upl-validation" id="img-upl-validation" enctype="multipart/form-data" method="post" accept-charset="utf-8"> <div class="col-lg-6"> </div> <div class="col-lg-6"> <div class="form-group"> <label for="image">Upload Image</label> <input type="file" name="imageURL" id="url" class="filestyle" value="" data-icon="false" data-buttontext="Choose image"> </div> </div> <div class="col-lg-12 col-sm-12"> <div class="form-group text-right padT"> <button type="submit" name="upload_img" id="upload-img" value="upl-img" class="btn btn-primary mrgT">Upload</button> </div> </div> </form> </div><!-- /.row --> <?php } else { ?> <div class="container"> <h2>Images</h2> <img width="700" height="400" class="img-thumbnail" src="<?php print HTTP_UPLOAD_LARGE_PATH.$this->session->flashdata('img_uploaded');?>"><br> <img width="500" height="270" class="img-thumbnail" src="<?php print HTTP_UPLOAD_MEDIUM_PATH.$this->session->flashdata('img_uploaded');?>"><br> <img width="300" height="200" class="img-thumbnail" src="<?php print HTTP_UPLOAD_THUMB_PATH.$this->session->flashdata('img_uploaded');?>"><br> <img width="75" height="75" class="img-thumbnail" src="<?php print HTTP_UPLOAD_MOBILE_PATH.$this->session->flashdata('img_uploaded');?>"><br> </div> <?php } ?> <?php $this->load->view('templates/footer'); ?>

Output:




0 coment�rios: