Menyimpan File Upload ke Direktori Berbeda di CodeIgniter

29 Juni 2009

Di bawah ini adalah script yang saya pergunakan pada CodeIgniter untuk mengupload file dan menyimpannya ke dalam direktori terpisah sesuai dengan type file.


<?php

class Upload extends Controller {

	function __construct()
	{
		parent::Controller();
		$this->load->library('Table');
		$this->load->library('Pagination');
		$this->load->library(array('DX_Auth', 'form_validation'));
		$this->load->helper(array('form', 'url', 'html'));

		$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
		$this->dx_auth->check_uri_permissions();
	}

	function index()
	{
		$this->load->view('uploads/upload_form', array('error' => '' ));
	}

	function do_upload()
	{
		$config['allowed_types'] = 'pdf|gif|jpg|png';
		if(eregi('image/', $_FILES['userfile']['type'])) :
			$config['upload_path'] = './public/uploads/gambar';
		else :
			$config['upload_path'] = './public/uploads/berkas';
		endif;
		$config['max_size']	= '5120';
		$config['max_width']  = '1024';
		$config['max_height']  = '768';

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

		if ( ! $this->upload->do_upload())
		{
			$error = array('error' => $this->upload->display_errors());
			$this->load->view('uploads/upload_form', $error);
		}
		else
		{
			$data = array('upload_data' => $this->upload->data());
			$this->load->view('uploads/upload_success', $data);
		}
	}
} ?>

Bagian utama untuk memisahkan file ke direktori berbeda tersebut adalah:

if(eregi('image/', $_FILES['userfile']['type'])) :
	$config['upload_path'] = './public/uploads/gambar';
else :
	$config['upload_path'] = './public/uploads/berkas';
endif;

Selamat mencoba. 🙂

Iklan

3 Responses to “Menyimpan File Upload ke Direktori Berbeda di CodeIgniter”


  1. waaah nice kaka.. thx atas infonya yaa 🙂


  2. itu berlaku juga gak sih kalau fungsi do_upload() itu punya parameter
    contohnya do_upload($fileid)
    soalnya ketika aku buat memakai parameter dia selalu gagal


  3. oia kalau boleh tau
    method ini buat apa ya
    $data = array(‘upload_data’ => $this->upload->data());


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google+

You are commenting using your Google+ account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

%d blogger menyukai ini: