Tutorial ini akan memandu Anda dalam mengimplementasikan fitur upload file dengan menggunakan framework CodeIgniter.
Langkah 1: Konfigurasi
Sebelum memulai, pastikan library upload telah di-load. Anda dapat melakukannya di controller atau secara otomatis dengan menambahkan ‘upload’ ke dalam array $autoload['libraries'] di file application/config/autoload.php.
Selanjutnya, buat sebuah direktori bernama uploads di root direktori proyek Anda (di luar folder application). Direktori ini akan digunakan untuk menyimpan file yang di-upload.
Langkah 2: Membuat Form Upload di View
Buat sebuah view di application/views/ dengan nama upload_form.php.
Saya akan membuat sebuah view sederhana yang berisi form untuk upload file.
application/views/upload_form.php:
<!DOCTYPE html>
<html>
<head>
<title>Form Upload File</title>
</head>
<body>
<h1>Form Upload File</h1>
<?php if (isset($error)): ?>
<p><?php echo $error; ?></p>
<?php endif; ?>
<?php echo form_open_multipart('upload/aksi_upload');?>
<input type="file" name="berkas" size="20" />
<br /><br />
<input type="submit" value="upload" />
</form>
</body>
</html>
Langkah 3: Membuat Controller untuk Handle Upload
Buat sebuah controller di application/controllers/ dengan nama Upload.php.
Saya akan membuat sebuah controller dengan dua metode: satu untuk menampilkan form upload dan satu lagi untuk menangani proses upload.
application/controllers/Upload.php:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Upload extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->helper(array('form', 'url'));
$this->load->library('upload');
}
public function index() {
$this->load->view('upload_form');
}
public function aksi_upload() {
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 2048; // dalam kilobyte
$config['max_width'] = 1024;
$config['max_height'] = 768;
$this->upload->initialize($config);
if (!$this->upload->do_upload('berkas')) {
$error = array('error' => $this->upload->display_errors());
$this->load->view('upload_form', $error);
} else {
$data = array('upload_data' => $this->upload->data());
$this->load->view('upload_success', $data);
}
}
}
Langkah 4: Membuat View untuk Hasil Upload
Buat sebuah view di application/views/ dengan nama upload_success.php.
Saya akan membuat sebuah view sederhana untuk menampilkan informasi file yang berhasil di-upload.
application/views/upload_success.php:
<!DOCTYPE html>
<html>
<head>
<title>Upload Berhasil</title>
</head>
<body>
<h1>File Berhasil Diupload</h1>