Sudrajad Hadi Saputra

Mahasiswa

Suka rebahan

Friendly

Baikk dong

Minggu, 08 Maret 2020

Tugas 6

Tugas

Penanganan File Upload

Langkah-langkah

a. Buat folder baru di dalam project dengan nama upload, di dalamnya berisi folder lagi bernama product
b. Buka model Product_model.php, tambahakan method _uploadImage() tepat di bawah method delete() isi :
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";
}
c. Ubah method save() menjadi seperti di bawah ini
public 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"];
        return $this->db->insert($this->_table, $this);
    }
d. Ubah method update() menjadi seperti di bawah ini
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"];
        $this->db->update($this->_table, $this, array('product_id' => $post['id']));
    }
e. Tambahkan method _deleteImage()
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.*"));
    }
}
f. Panggil method _deleteImage() pada method detele()
public function delete($id)
    {
        $this->_deleteImage($id);
        return $this->db->delete($this->_table, array("product_id" => $id));
    }

Screenshot


Source code : disini

0 komentar:

Posting Komentar

Cari Blog Ini

Contact Me

Adress/Street

Perumdos Blok U No.5

Phone number

+(62)81 63 42 045

Campus

Institut Teknologi Sepuluh Nopember