Skip to content

December 14, 2008

2

Batasi Download Dengan Library FileDownload

filedownload

Kemaren browsing2, aku nemuin library buat download file di CodeIgniter. Sebenernya hampir sama dengan library download built in di codeigniter, tapi ada beberapa tambahan fitur yang menurut aku, sangat berguna.

Fitur – fitur yang aku anggap berguna adalah sbb:

  • Pembatasan bandwidth download. Metode yang digunakan, lib ini menggunakan looping yang isinya membaca isi file per buffer size. Jika buffer yang dibaca ukurannya sama atau lebih dari bandwidth yang diset maka dia akan menjalankan sleep selama satu detik.
  • Pendeteksian download selesai. dengan mengkombinasikan antara perintah ignore_user_abort, connection_status, connection_aborted, librari ini akan menghasilkan ukuran byte yang ditransfer pada saat koneksi terputus. Koneksi terputus bisa terjadi mungkin karena download gagal atau selesai. Penentuan download gagal atau sukses dapat dilihat dari perbandingan antara kbytes nilai hasil fungsi download dengan kbytes nilai hasil filesize di server.

Berikut cara penggunaanya

$this->load->library('filedownload');// panggil librari
$config = array(
'file' => 'store/orly.exe',// lokasi file di server. path relatif pada lokasi index.php root CI
'resume' => true,// seeting support resume
'filename' => 'This_is_the_new_filename.exe',//file name yang akan disimpan di komputer.
'speed' => 200, // file download speed limit, in kbytes
);
$this->filedownload->send_download($config);

Library Filedownload ini bersumber dari XtraFile, dengan sedikit aku ubah supaya bisa buat ngecek apakah download yang dilakukan user berhasil apa tidak.

Download disini.