Upload Validation dalam Form Validation CodeIgniter

By deptz, Fri. May 14, 2010
Categories: PHP related, tutorial
Tags: , ,
1,526 views

Minggu ini saya mengerjakan website dari Elektronika dan Instrumentasi UGM. Saya membuat sebuah content management system(CMS) sederhana untuk memperbarui konten. Konsepnya adalah dalam sebuah posting, akan ada sebuah judul, ringkasan, teks panjang, dan gambar yang mewakili posting tersebut.

Web tersebut disusun dengan menggunakan framework CodeIgniter. Awalnya saya berencana membuat sebuah librari untuk menangani web ini. Jadi saya tinggal fokus pada librarinya. Termasuk untuk bagian CMS tersebut. Saya pun menggunakan class form validation dari CodeIgniter untuk melakukan validasi input form CMS.

Masalah pertama adalah, class form validation pada CodeIgniter hanya melakukan pemeriksaan pada variabel $_POST. Sedangkan saya akan mengunggah berkas gambar yang nantinya akan ada di variabel $_FILES.  Akhirnya setelah melakukan googling, ditemukan penyelesaian bahwa untuk mengatasi hal tersebut, kita dapat membuat sebuah fake post. Misalnya:

$_POST['upload_form'] = 'pura-puranya ini konten';

Setelah itu, kita membuat sebuah rules seperti biasa dengan memanggil fungsi callback. Misalnya saja:

$this->form_validation->set_rules('upload_form', 'Upload Form', 'required|callback_ngupload');

Dan tentunya fungsi callbacknya. Misalnya saja:

 function ngupload($str){
        $ul_config['upload_path'] = '/path/to/upload/folder';
        $ul_config['allowed_types'] = 'gif|jpg|png';

        $this->load->library('upload',$ul_config);
         if(!$this->upload->do_upload('upload_form')){
             if($_FILES['upload_form']['error']==4){
                 return TRUE;
             }else{
                $this->form_validation->set_message('ngupload', $this->upload->display_errors());
                return FALSE;
             }
         } else {
                $this->uploads = $this->upload->data();
                return TRUE;
         }
    }

Dapat dilihat diatas $_FILES[‘upload_form’][‘error’] = 4, ini adalah error ketika tidak ada berkas yang dipilih. Karena dalam konsep CMS yang saya buat tidak harus mengunggah gambar, maka saya mengabaikan error ini.

Masalah yang kedua adalah, ternyata fungsi callback dari class form validation CodeIgniter tidak berjalan dengan semestinya kalau kita membuatnya dalam sebuah library. Harus di dalam sebuah controller. Mohon saya dikoreksi kalau salah. 🙂

7 Responses to “Upload Validation dalam Form Validation CodeIgniter”

  1. cefer Says:

    wah bisa buat referensi untuk yang lagi belajar PHP kang..
    😀

  2. d3ptzz Says:

    sip mas dab.. semoga bermanfaat..:D

  3. fandronk Says:

    Yahudd lah si mas ini..:D

  4. d3ptzz Says:

    @fandronk: yahud apanya fan?:)

  5. fandronk Says:

    Sepak Terjangnya hahahahha…

  6. Steve Says:

    wah bisa buat referensi untuk yang lagi belajar PHP kang..
    😀

  7. awalone Says:

    ALHAMDULILLAH, syukron atas ilmunya …

Comments