Saya mencari sebuah library yang boleh membantu dalam operasi upload fail di browser. Sebolehnya, ianya mesti memberikan maklumbalas proses upload secara visual. Memang ada banyak. Salah satunya adalah JQuery File Upload oleh Sebastian Tschan.
JQuery File Upload agak lengkap juga dengan APInya sendiri, dan juga contoh-contoh pemasangan untuk PHP, Ruby, Python, Java, Node.hs dan lain-lain. Selain dari itu, ia juga mempunyai API Javascript yang membolehkan kita mengubah ciri-ciri asalnya kepada sesuatu yang lebih sesuai dengan aplikasi yang kita bangunkan.
Codeigniter
Untuk kegunaan dengan Codeigniter, saya mengambil contoh file PHP yang disertakan bersama dan menjadikannya sebuah library untuk Codeigniter, UploadHandler.php. Ini mudah kerana contoh PHP itu memang sebuah class pun. Maka ianya boleh disalin terus ke folder application/library di Codeigniter kita. Namun saya membuat sedikit pengubahsuaian agar ianya boleh memberikan maklumbalas balik ke Codeigniter tentang fail-fail yang sudah pun di-upload.
Ini adalah modifikasi saya di Github.
Jangan lupa untuk membina satu folder /files yang berada sebaris dengan file index.php kita. Di sinilah fail-fail yang di-upload akan disimpan. Kita boleh sahaja mengubahnya dengan menyatakan sendiri folder yang kita inginkan ketika membina objek untuk UploadHandler. Tetapi untuk contoh ini, kita teruskan dulu.
Ini contoh view saya
Perhatikan yang kita menggunakan site_url untuk menetapkan url di mana file-upload akan dihantar. Dan kemudian di bawah, kita boleh menambah data-data tambahan untuk dihantar bersama dengan fail menggunakan formData. Dalam contoh ini, kita menghantar fail ke 'products/aj_upload'.
Berikut adalah contoh kandungan fungsi aj_upload di dalam controller products.
function aj_upload() { $this->load->library('UploadHandler'); $tambahan1 = $this->input->post('tambahan1'); $tambahan2 = $this->input->post('tambahan2'); foreach( $this->uploadhandler->files as $f){ $this->db->insert("product_images", array( 'product_id' => $tambahan1, 'details' => $tambahan2, 'filename' => $f->url )); } }
Baiklah, perlu diingatkan yang ini adalah contoh penggunaannya dan bukannya kod lengkap. Moga-moga dapat memberi sedikit pemahaman untuk ujikaji sendiri kelak.
2 replies on “JQuery File Upload dan Codeigniter”
terima kasih atas perkongsian tuan. namum utk jquery-file-upload 8.0.2, method $this->uploadhandler->files tidak lg berfungsi
Oh, mesti terlepas baca ni. Memang tak boleh dengan yang asal. Hanya boleh dengan modifikasi saya sendiri.
https://github.com/kidino/jQuery-File-Upload/commit/91eee0850b95b4b0dc6ec053868d6ff70abce63f