Tutorial ini akan memandu Anda dalam mengimplementasikan fitur download file menggunakan framework CodeIgniter.
Langkah 1: Persiapan File
Siapkan file yang akan di-download. Sebagai contoh, buat sebuah file bernama dokumen.pdf dan letakkan di dalam direktori uploads (direktori yang sama yang kita gunakan pada tutorial upload). Tentu saja, Anda bisa menggunakan jenis file lain sesuai kebutuhan.
Langkah 2: Membuat Controller
Buat sebuah controller di application/controllers/ dengan nama Download.php.
Saya akan membuat sebuah controller dengan satu metode untuk menangani proses download.
application/controllers/Download.php:
**
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Download extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->helper('download');
$this->load->helper('url'); // Untuk membuat URL
}
public function index() {
$data['nama_file'] = 'dokumen.pdf'; // Nama file yang akan di-download
$this->load->view('download_view', $data);
}
public function unduh($nama_file) {
$path = FCPATH . 'uploads/' . $nama_file;
$data = file_get_contents($path); // Baca isi file
force_download($nama_file, $data);
}
}
Penjelasan Kode
$this->load->helper('download');: Baris ini memuat helperdownloadyang menyediakan fungsiforce_download().$this->load->helper('url');: Baris ini memuat helperurluntuk membuat URL di view.index(): Metode ini menyiapkan data nama file dan meload viewdownload_view.php.unduh($nama_file): Metode ini menerima nama file sebagai parameter.$path = FCPATH . 'uploads/' . $nama_file;: Menentukan path lengkap ke file yang akan di-download.FCPATHadalah konstanta yang berisi path ke direktori root proyek Anda.$data = file_get_contents($path);: Membaca seluruh isi file ke dalam sebuah string.force_download($nama_file, $data);: Fungsi utama untuk memulai proses download. Parameter pertama adalah nama file yang akan ditampilkan saat download, dan parameter kedua adalah data file.
Langkah 3: Membuat View
Buat sebuah view di application/views/ dengan nama download_view.php.
Saya akan membuat sebuah view sederhana yang menampilkan link untuk memulai proses download.
application/views/download_view.php:
<!DOCTYPE html>
<html>
<head>
<title>Download File</title>
</head>
<body>
<h1>Download File</h1>
<p>Klik link di bawah ini untuk mengunduh file:</p>
<p><a href="<?php echo site_url('download/unduh/' . $nama_file); ?>">Download <?php echo $nama_file; ?></a></p>
</body>
</html>
Penjelasan Kode
<a href="<?php echo site_url('download/unduh/' . $nama_file); ?>">Download <?php echo $nama_file; ?></a>: Baris ini membuat sebuah link.site_url('download/unduh/' . $nama_file): Fungsi ini menghasilkan URL yang mengarah ke metodeunduhpada controllerDownload, dengan nama file ($nama_file) sebagai parameter.
Selesai!
Sekarang, Anda dapat mengakses http://localhost/nama_proyek/index.php/download di browser Anda. Anda akan melihat sebuah halaman dengan link untuk men-download file dokumen.pdf (atau file lain yang Anda tentukan). Ketika link diklik, browser akan secara otomatis memulai proses download. Pastikan file dokumen.pdf ada di direktori uploads proyek Anda.