Proses upload seringkali dibutuhkan dalam pengelolaan website, seperti upload file berupa gambar user, kelengkapan berkas, file postingan dan lain sebagainya. Framework tidak lupa memberikan fungsi atau library yang memudahkan development dalam mengupload file.
Berikut akan kita buat sebuah web sederhana untuk mengupload file menggunakan Codeigniter.
1. Buat folder baru di folder root dengan nama asset.
2. Buat sebuah view dengan nama upload.php isi dengan kode di bawah ini.
<!DOCTYPE html>
<html>
<head>
<title>Upload file</title>
</head>
<body>
<form method="post" action="upload/aksi" enctype="multipart/form-data">
<input type="file" name="file">
<br>
<button>upload</button>
</form>
</body>
</html>
3. Buat sebuah Controller baru dengan nama Upload.php isi dengan kode di bawah ini.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Upload extends CI_Controller {
public function index()
{
$this->load->view("upload");
}
public function aksi()
{
$config['upload_path'] = './asset/';
$config['allowed_types'] = 'gif|jpg|png|jpeg';
$config['max_size'] = 2024;
$config['encrypt_name'] = TRUE;
$config['file_name'] = "sembarang";
$this->load->library('upload');
$this->upload->initialize($config);
if (!$this->upload->do_upload('file')) {
$error = array('error' => $this->upload->display_errors());
$ar = array('result'=>'error', 'data'=>$error);
echo json_encode($ar);
} else {
$data = array('image_metadata' => $this->upload->data());
$nama = $data['image_metadata']['file_name'];
$tipe = explode('.', $nama);
$ret = array(
'nama_file'=> $nama,
'tipe_file'=>$tipe[1]
);
$ar = array('result'=>'success', 'file'=>$ret);
echo json_encode($ar);
}
}
}
4. Silahkan jalankan aplikasi dan lihat hasilnya.
Penjelasan kode
$config['upload_path'] = './asset/';
$config['allowed_types'] = 'gif|jpg|png|jpeg';
$config['max_size'] = 2024;
$config['encrypt_name'] = TRUE;
Kode di atas merupakan konfigurasi dari file yang akan di upload.
- upload_path adalah lokasi atau folder dimana file upload akan di tempatkan.
- Pada bagian "allowed_types" merupakan jenis file yang dapat di upload, untuk mengizinkan semua jenis file silahkan isi dengan '*'.
- max_size, batas maksimal ukuran file yang di upload.
- encrypt_name, membuat nama file otomatis dengan menggunakan kode unik
Baca Juga : Menampilkan Gambar Sebelum di Upload dengan Javascript