Upload file in the database with ajax in Codeigniter?
Paste in View
	<form id="doc_table" name="doc_table" method="post" enctype="multipart/form-data"   >
	<?php //echo validation_errors(); ?> 
	<?php //echo form_open_multipart('upload/do_upload'); ?>
      <div class="modal-body">
	  <div class="form-group">
		<label for="formGroupExampleInput">Document Name</label>
	<input type="text" class="form-control doc_name" id="formGroupExampleInput" name="doc_name"  placeholder="Example input">
		<label for="exampleFormControlTextarea1">Comment</label>
		<textarea class="form-control doc_comment" id="exampleFormControlTextarea1" name="doc_comment"  rows="3"></textarea>
		<label for="exampleFormControlFile1">Upload File</label>
		<input type="text" name="lead_id" value="<?php echo $leads[0]['id']; ?>">
		<input type="file" class="form-control-file doc_file" name="doc_file"  id="exampleFormControlFile1">
	  </div>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
        <input type="submit" value="Save" name="upload_documents" class="lead_upload_docs" class="btn btn-primary">
      </div>
	  </form>
<script>
jQuery('#doc_table').submit(function(e){
	e.preventDefault();
var doc_name = jQuery('.doc_name').val();
var doc_comment = jQuery('.doc_comment').val();
var doc_file = jQuery('.doc_file').val();
var leadid =  <?php echo $leads[0]['id']; ?>;
if(leadid){
jQuery.ajax({
url:'<?php echo base_url(); ?>leads/add_lead_docs',
type:"post",
data:new FormData(this),
processData:false,
contentType:false,
cache:false,
async:false,
success:function(response){		 
console.log(response);
}
});
}else{
jQuery('#result_notice').html('');
}
});
</script>
Paste in Controller
	  public function add_lead_docs(){
		 	$lead_id = $this->input->post('lead_id');
			$doc_name = $this->input->post('doc_name');
			$doc_comment = $this->input->post('doc_comment');
			$config['upload_path']          = 'assets/upload';
            $config['allowed_types']        = 'gif|jpg|png';
			$config['encrypt_name'] = TRUE;
                $this->load->library('upload', $config);
                if ( ! $this->upload->do_upload('doc_file'))
                {
                        $error = array('error' => $this->upload->display_errors());
						print_r($error);
						echo 'FIle Error';
                }
                else
                {
                        $data = array('upload_data' => $this->upload->data());
						echo 'FIle Uploaded Successfully';
						echo $file_name = $this->upload->data('file_name');
                } 
		 		$data = array(
                    'doc_name' => $doc_name,
                    'doc_comment' => $doc_comment,
                    'doc_path' => $file_name,
					'p_id' => $lead_id,
                    'type' => 'doc'
				); 
		    $this->Leads_model ->add_documents($data); 
	  }
Paste in Model
		function add_documents($data)
    {
		$insert = $this->db->insert('leads_history', $data);
		$insert_id=$this->db->insert_id();
		return $insert_id;
	}
 
No comments:
Post a Comment