Tugas 6 PBKK
Tugas 6 PBKK
Pada pertemuan kali ini akan memperbaiki fitur CRUD yaitu broken photo. Seperti yang kita ketahui bersama bahwa CRUD kemarin masih memiliki kecacatan yaitu gambar yang tidak kita input mengalami broken photo seperti gambar dibawah ini :
Untuk memperbaiki hal tersebut maka liatlah tata cara pengerjaannya dibawah ini :
- Download foto dibawah ini dengan nama default.jpg lalu letakkan file tersebut pada direktori baru bernama /upload/product/default.jpg
- Setelah mendownload gambar tersebut, maka sekarang akan terlihat seperti gambar dibawah ini :
- Membuat Fitur Upload pada CodeIgniter
Pada file Product_model.php kita tambahkan method _uploadImage() dibawah method delete()private function _uploadImage() { $config['upload_path'] = './upload/product/'; $config['allowed_types'] = 'gif|jpg|png'; $config['file_name'] = $this->product_id; $config['overwrite'] = true; $config['max_size'] = 1024; // 1MB // $config['max_width'] = 1024; // $config['max_height'] = 768; $this->load->library('upload', $config); if ($this->upload->do_upload('image')) { return $this->upload->data("file_name"); } return "default.jpg"; }
Lalu kita menambahkan script pada method save() dan update() pada file Product_model.php sehingga menjadipublic function save() { $post = $this->input->post(); $this->product_id = uniqid(); $this->name = $post["name"]; $this->price = $post["price"]; $this->image = $this->_uploadImage(); $this->description = $post["description"]; $this->db->insert($this->_table, $this); } public function update() { $post = $this->input->post(); $this->product_id = $post["id"]; $this->name = $post["name"]; $this->price = $post["price"]; if (!empty($_FILES["image"]["name"])) { $this->image = $this->_uploadImage(); } else { $this->image = $post["old_image"]; } $this->description = $post["description"]; return $this->db->update($this->_table, array("product_id" => $post['id'])); }
- Menghapus File yang di-UploadDengan cara menambahkan method pada file Product_model.php dibawah method _uploadImage()
Yang terakhir kita tinggal panggil method _deleteImage() pada method delete()private function _deleteImage($id) { $product = $this->getById($id); if ($product->image != "default.jpg") { $filename = explode(".", $product->image)[0]; return array_map('unlink', glob(FCPATH."upload/product/$filename.*")); } }
public function delete($id) { $this->_deleteImage($id); return $this->db->delete($this->_table, array("product_id" => $id)); }
- Setelah semua tata cara yang diatas dilakukan mari kita cek apakah sudah bisa berjalan dengan baik atau belum dengan cara menambah product.
- Cukup sekian untuk pertemuan kali ini.
- Untuk Source Codenya bisa dilihat di link dibawah ini :
Source Code
Komentar
Posting Komentar