I am unable to upload image in MySQLi using ajax in CodeIgniter

16 Views Asked by At

Why my code does not work and it does not upload image in mysqli db using ajax in codeigniter?

When I click on upload , it does not say anything and image does not upload.

Here is view form.

<form class="form-horizontal" id="submit" enctype="multipart/form-data">
                    <div class="form-group">
                        <input type="text" name="title" class="form-control" placeholder="title"/>

                    </div>
                <div class="form-group">
                        <input type="file" name="file" class="form-control" placeholder="title"/>
                        
                    </div>
                                    <div class="form-group">
                        <button class="btn btn-primary" id="btn_upload">Upload</button>
                    </div>

                    </div>
                    

                </form>

In view file here is ajax call:

<script type="text/javascript">
    $(document).ready(function(e){
        e.preventDefault();
        $.ajax({

            url: '<?php echo base_url(); ?>img_controller/do_upload',
            type: 'post',
            data: new formData(this),
            processData: false,
            cache: false,
            async: false,
            success: function(data){
                alert("image has been uploaded.")
            }

        });

    });
  </script>

Controller Code:

<?Php


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


class img_controller extends CI_Controller{

    public function __construct(){
            parent::__construct();
            $admin=$this->session->userdata('admin');
            
            $this->load->model('upload_model');

            if(empty($admin)){
                $this->session->set_flashdata('msg','Your session has been expired.');
                redirect(base_url().'admin/login/index');

            }
        }

public function index(){

    $this->load->view('img_view');

}

public function do_upload(){
$config['upload_path'] = '.\Public\Uploads';
$config['allowed_types'] = 'gif|png|jpg';
$config['encrypt_name'] = TRUE;

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

if($this->upload->do_upload('file')){
    $data = array('upload_data'=>$this->upload->data());

    $title = $this->input->post('title');
    $image = $data['upload_data']['file_name'];
    $result = $this->uplod_model->save_upload($title,$image);
    echo json_encode($result);

}


}


    
}

?>

Finally Model Code:

<?php
class upload_model extends CI_Model{

    function save_upload($title,$image){
        $data = array('title' =>$title,'file_name'=>$image);

        $result = $this->db->insert('image_db',$data);
        return $result;
            }
}

?>
0

There are 0 best solutions below