Tugas 6 (PBKK - A)

Penanganan File Upload

Pertama, kita harus memasukkan file gambar default yang mana jika tidak ada gambar yang di upload, maka gambar default tersebut menggantikannya. 

Buat folder baru upload dan di dalamnya buat folder lagi bernama product.



Setelah itu, kita bisa memulai langkah untuk mengupload foto.

1. Tambahkan method _uploadImage() tepat di bawah method delete() di file Product_model.php


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";
}

2. Ubah method save() dan update() pada Product_model.php menjadi seperti ini :



Khusus method update(), kita akan membuat pengecekan seperti ini :


if (!empty($_FILES["image"]["name"])) {
    $this->image = $this->_uploadImage();
} else {
    $this->image = $post["old_image"];
}


3. Menghapus File yang di-upload

Tambahkan method baru bernama _deleteImage() pada class Product_model tepat di bawah method _uploadImage().


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.*"));
    }
}


Panggil method _deleteImage() pada methode delete()



4. Percobaan Upload dan Delete File

Tambahkan produk baru dengan mengupload foto katalog, lalu klik save dan buka halaman list products.





Lalu, coba untuk menghapus file yang sudah di upload tersebut.


Untuk source code dapat diakses di bawah ini :
Source Code

Comments