Dropzone.JS Implementation in PHP Codeigniter
28-02-2019Dropzone HTML Implementation
<link href="<?php echo base_url() ?>assets/css/dropzone.css" rel="stylesheet"> <div class="card"> <div class="row"> <div class="col-sm-12"> <div class="col-md-12 col-sm-12"> <form action="<?= base_url('admin/do_send_gallery'); ?>" class="dropzone" id="my-awesome-dropzone"> </form> </div> </div> </div> </div> </div> <script src="<?php echo base_url() ?>assets/js/dropzone.js" type="text/javascript"></script> <script> Dropzone.options.myAwesomeDropzone = { paramName: "files", init: function () { var element = this; $.ajax({ type: 'GET', url: "<?=base_url('admin/do_init_gallery'); ?>", success:function(data) { $.each(data, function(index) { var mockFile = {name: data[index].name, size: 12345, type: 'image/jpeg'}; element.emit("addedfile", mockFile); // And optionally show the thumbnail of the file: element.emit("thumbnail", mockFile, data[index].url); }); } }); }, renameFile : function (file) { return new Date().getTime() + '_' + file.name; }, accept: function (file, done) { done(); }, success: function (file, response) { file.previewElement.querySelector("img").src = response.files[0].url; file.previewElement.classList.add("dz-success"); var fileuploded = file.previewElement.querySelector("[data-dz-name]"); fileuploded.innerHTML = response.files[0].name; file.name = response.files[0].name; }, error: function (file, response) { file.previewElement.classList.add("dz-error"); }, addRemoveLinks: true, removedfile: function (file) { var name=""; if(file.upload!==undefined) name = file.upload.filename; else name=file.name; $.ajax({ type: 'POST', url: "<?=base_url('admin/do_delete_gallery'); ?>", data: "id=" + name, dataType: 'html' }); var _ref; return (_ref = file.previewElement) != null ? _ref.parentNode.removeChild(file.previewElement) : void 0; } }; </script>
Dropzone Server Side Implementation
function gallery() { $data['page_name'] = 'gallery'; $data['page_title'] = 'Galeri'; $this->load->view('admin/index', $data); } function do_init_gallery() { $this->db->where('year', date('Y')); $result=$this->db->get('gallery')->result(); header('Content-Type: application/json'); echo json_encode( $result ); } function do_send_gallery() { $this->load->library("UploadHandler"); $files = $this->uploadhandler->response['files']; if (count($files) == 0) return; $data['name'] = $files[0]->name; $data['url'] = $files[0]->url; $data['thumbnail']=$files[0]->thumbnailUrl; $data['year']=date('Y'); $data['created_at']=date('Y-m-d H:i:s'); $this->db->insert('gallery', $data); } function do_delete_gallery() { $id=$this->input->post('id'); $this->db->where('name',$id); $this->db->delete('gallery'); }