pict by pexels.com @pixabay |
Untuk mengupload file seperti gambar PNG , JPEG atau PDF, Excel dan Word ke Web, sebenarnya Codeigniter sudah menyediakan library bawaan yang bernama library upload yang cukup mudah digunakan. silahkan baca dokumentasinya disini.
Namun pernah tidak?, kalian mencoba mengupload multiple file atau mengupload lebih dari satu file di Codeigniter dan gagal?.
Hal ini pernah saya alami, dimana Codeigniter hanya akan mengupload file terakhir dari beberapa file yang di kirim dari form input. Atau hanya mengupload 1 file dari beberapa file tersebut. Meskipun saya saat itu telah menggunakan perulangan foreach namun tetap tidak berhasil.
Setelah saya baca-baca di forum Stackoverflow ternyata, secara default ketika upload file atau dokumen dilakukan, library upload codeigniter hanya akan membuat satu buah Object upload, dimana Object tersebut hanya dapat menampung satu file atau satu dokumen saja.
Oleh karena itu untuk melakukan upload multiple file atau dokumen, kita harus membuat Object upload custom sesuai dengan jumlah dokumen yang kita miliki.
Silahkan perhatikan tutorial dibawah ini :
Pada skript diatas kita membuat form untuk mengupload 2 buah file yang kita beri nama file1 dan file dua,jangan lupa memberi property
method="POST" enctype="multipart/form-data"
pada element formnyaSetelah itu buatlah sebuah controller bernama Dokumen
Lalu didalam controller tambahkan Skrip dibawah ini
Pada skrip diatas kita membuat sebuah controller dokumen yang terdiri dari 3 fungsi
Fungsi
uploadfile()
berfungsi untuk menerima dan memeriksa file yang dikirim dari form input yang telah kita buat sebelumnya. Jika semua persyaratan didalam kondisi IF() terpenuhi
if(array_key_exists('file1',$_FILES) && $_FILES['file1']['size']>0){
$file1 = $this->upload_file1('file1');//upload $)FILES['file1'];
if ($file1['result']==false) {
echo "error : gagal di upload";
}else{
echo "file1 berhasil di upload";
}
}
maka fungsi upload_file1() akan di eksekusi (jika file1 dikirim dari input form).
Dan ketika persyaratan IF untuk file2 juga terpenuhi maka fungsi upload_file2() juga akan di eksekusi.
Isi dari fungsi
upload_file1()
dan upload_file2()
sebenarnya hampir sama persis.Perbedaanya paling utama terdapat pada
$this->load->library('upload', $config,'file1');//membuat object dengan nama file1
$this->file1->initialize($config);
dan
$this->load->library('upload', $config,'file2');//membuat object dengan nama file2
$this->file2->initialize($config);
Perhatikan pada baris kode tersebut kita membuat Objek custom bernama
file1
dan file2
Dimana
file1
digunakan untuk mengupload file dari form input bernama file1 '<input name="file1" placeholder="" type="file" value="" />'dan
file2
digunakan untuk mengupload file dari form input bernama file2 '<input name="file2" placeholder="" type="file" value="" />'Sekian pembahasan dari saya, jika ada yang kurang jelas silahkan tanyakan di kolom komentar