Upload File dalam CodeIgniter Versi 2

Contoh kasus:

Saya akan membuat form yang akan mengupload dokumen perusahaan. Untuk itu kita memerlukan tiga langkah:

  1. Membuat form untuk upload
  2. Membuat controller upload
  3. Membuat fungsi do_upload didalam controller upload
  4. Membuat folder pada direktori root untuk meletakkan file upload kita (disini saya namakan uploads)
  5. Lalu nama file beserta foldernya dimasukkan ke field nama_dokumen pada tabel dokumen (Tabel dokumen terdiri dari field id_dok yang auto_increment dan nama_dokumen)
  6. Membuat file upload_sukses.php untuk memberitahukan kita bahwa upload telah berhasil.

1. Membuat Form Upload

Untuk membuat form upload dokumen perusahaan adalah sebagai berikut :

<h3>Upload Dokumen Perusahaan</h3>

<?php

echo $error;

echo form_open_multipart(‘upload/do_upload’);
echo form_upload(‘dokumen’);
echo form_submit(‘kirim’,’Upload’);
form_close();

?>

Simpan koding di atas dengan nama uploaddokcompany.php

Keterangan:

  • $error adalah variabel yang dikirim oleh Controller.
  • form_open_multipart, kode ini digunakan untuk mengupload file

2. Membuat Controller Upload


<?php

class Upload extends CI_Controller {

function __construct()
{

parent::__construct();

$this->load->helper(array(‘form’, ‘url’));

}

function index()

{

$this->load->view(‘uploaddokcompany’, array(‘error’=> ‘ ‘);

}

function do_upload()
{

$config[‘upload_path’] = ‘uploads’;
$config[‘allowed_types’] = ‘gif|jpg|png|pdf’;
$config[‘max_size’] = ‘100’;

$this->load->library(‘upload’, $config);

if ( !$this->upload->do_upload(‘dokumen’))

{

$data[‘error’]= $this->upload->display_errors();

$this->load->view(‘uploaddokcompany’, $data);

}

else
{

$dok = $this->upload->data();

$data[‘upload_data’]= $dok;

if ($dok[‘file_name’]){

$filedok=”/uploads/”.$dok[‘file_name’];

}

$this->db->query(“insert into dokumen values(‘ ‘,’$filedok’)”);

$this->load->view(‘upload_success’, $data);


}


}
?>

Keterangan:

  • $config[‘upload_path’], kode ini digunakan untuk menentukan lokasi folder sebagai tempat menyimpan file yang akan diupload.
  • $config[‘allowed_types’], kode ini digunakan untuk menentukan tipe file yang diperbolehkan.
  • $config[‘max_size’], kode ini digunakan untuk menentukan ukuran file dalam satuan kilobyte.
  • $this->load->library(‘upload’, $config), kode ini digunakan untuk memberikan parameter dari array $config ke library upload dan sekaligus meload library upload tersebut.
  • $this->upload->do_upload(‘dokumen’), kode ini digunakan untuk mengupload file dimana ‘dokumen’ ini adalah nama dari elemen HTML yaitu form_upload(‘dokumen’);
  • $this->upload->display_errors(), kode ini digunakan untuk menampilkan pesan error jika file yang diupload gagal.
  • $this->upload->data(), kode ini digunakan untuk menghasilkan array assosiatif yang berisi informasi mengenai file yang diupload.

Catatan:

Jika keluar error The filetype you are attempting to upload is not allowedmaka ada beberapa hal yang harus kamu periksa:

  1. Untuk memperbolehkan tipe selain image misal pdf maka tipe pdf  ini harus diletakkan didepan, misal kita ingin memperbolehkan file pdf dan xlsx maka kode harus berbentuk $config[‘allowed_types’] = ‘pdf|xlsx|gif|jpg|png;.
  2. Jika langkah pertama masih salah maka lakukan langkah ini ->  Cek mimenya sudah ada atau belum pada file application/config/mimes.php.



3. Membuat File upload_sukses.php


<html>
<head>
<title>Upload Form</title>
</head>
<body>

<h3>Dokumen Perusahaan berhasil diupload</h3>

<ul>

<?php

foreach($upload_data as $item => $value):?>
<li><?php echo $item;?>: <?php echo $value;?></li>
<?php endforeach; ?>
</ul>

<p><?php echo anchor(‘upload’, ‘Upload Dokumen lainnya’); ?></p>

</body>
</html>


Keterangan:

  • $upload_data adalah variabel yang dikirim dari Controller Upload.

Jika file berhasil diupload maka akan keluar baris dibawah ini:


File berhasil diupload

* file_name: CodeIgniter_1.7_.2_1.zip

* file_type: application/zip

* file_path: C:/xampp/htdocs/lelang/uploads/

* full_path: C:/xampp/htdocs/lelang/uploads/CodeIgniter_1.7_.2_1.zip

* raw_name: CodeIgniter_1.7_.2_1

* orig_name: CodeIgniter_1.7_.2_.zip

* file_ext: .zip

* file_size: 2175.67

* is_image:

* image_width:

* image_height:

* image_type:

* image_size_str:

Upload Another File!


Merubah bahasa error dari library Upload

Untuk merubah bahasa error pada library Upload maka kamu dapat merubahnya pada file system/language/english/upload_lang.php.

Contoh:

//$lang[‘upload_invalid_filetype’] = “The filetype you are attempting to upload is not allowed.”;
$lang[‘upload_invalid_filetype’] = “Tipe File yang coba kamu upload tidak diperbolehkan”;
  1. Baris $lang[‘upload_invalid_filetype’] = “The filetype you are attempting to upload is not allowed.”;
  2. saya rubah ke bahasa Indonesia seperti ini $lang[‘upload_invalid_filetype’] = “Tipe File yang coba kamu upload tidak diperbolehkan”;

Jika Tutorial ini bermanfaat silahkan katakan ‘Terima Kasih Fahmi Basya Kartapura’.

You may also like...

3 Responses

  1. Balakadut says:

    Terima Kasih Fahmi Basya Kartapura

  2. aihoa says:

    terima kasih bang Fahmi atas tutorialnya, tapi koq punyaku muncul error kaya gini : The upload path does not appear to be valid.
    di mana letak errornya yah??
    mohon bantuannya.

  3. Fahmi Basya Kartapura says:

    Errornya path uploadnya invalid ?, buat direktori uploads di dalam Root dari aplikasi codeignitermu.

Leave a Reply

Your email address will not be published. Required fields are marked *