Upload
Upload adalah proses transmisi sebuah file dari sebuah komputer ke sistem komputer yang lainnya dengan arah yang berkebalikan dengan download. Dari internet user dapat melakunan proses upload dimana user mengirimkan file ke komputer lain yang memintanya.
Download
Download adalah proses transmisi sebuah file dari sebuah sistem komputer ke sistem komputer yang laiinnya. Dari internet, user yang melakukan proses download adalah proses dimana users meminta/request sebuah file dari sebuah komputer lain (website, server, atau lainnya) dan menerimanya.
Pada proses kali ini saya akan menjelaskan bagaimana cara Upload dan Download sebuah file menggunakan Framework Codeigniter.
Buat sebuah database dengan test_upload. Kemudian buat lah struktur tabel sperti berikut:
CREATE TABLE IF NOT EXISTS `tb_image` ( `ID_image` int(11) NOT NULL AUTO_INCREMENT, `file_name` varchar(50) NOT NULL, `file_type` varchar(50) NOT NULL, `file_path` varchar(50) NOT NULL, `full_path` varchar(100) NOT NULL, `raw_name` varchar(50) NOT NULL, `orig_name` varchar(50) NOT NULL, `client_name` varchar(50) NOT NULL, `file_ext` varchar(50) NOT NULL, `file_size` varchar(10) NOT NULL, `image_width` varchar(10) NOT NULL, `image_height` varchar(10) NOT NULL, `image_type` varchar(10) NOT NULL, `image_size_str` varchar(50) NOT NULL, PRIMARY KEY (`ID_image`) );Jika database dan tabel nya sudah dibuat maka selanjutnya buka file
database.php
di ./application/config/database.php
. Dan atur konfigurasi nya seperti berikut:
$active_group = 'default'; $query_builder = TRUE; $db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'root', 'password' => '', 'database' => 'test_upload', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE );Buka file
autoload.php
di ./application/config/autoload.php
. Dan atur seperti berikut ini:
$autoload['libraries'] = array( 'database', 'form_validation', 'session' ); $autoload['helper'] = array( 'url', 'html', 'download' );Buka file
config.php
di ./application/config/config.php
. Dan atur seperti berikut ini:
$config['base_url'] = 'http://localhost/upload/'; // harus sesuai dengan root folder project AndaDan kemudian buka file
routes.php
di ./application/config/routes.php
. Dan atur seperti berikut ini:
$route['default_controller'] = 'upload'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;Buat sebuah file controller baru dengan nama
upload.php
di ./application/controllers/
. Dan ketikkan sintak berikut:
<?php class Upload extends CI_Controller { public function __construct() { parent::__construct(); } public function index() { $config = array( 'upload_path' => 'upload/', 'allowed_types' => 'gif|jpg|png|', // |extensi lainnya 'max_size' => '0', //'encrypt_name' => true // meng-enkripsi nama file ); $this->load->library('upload', $config); if ($this->upload->do_upload('file_name')) { $data = $this->upload->data(); $query = array( 'file_name' => $data['file_name'], 'file_type' => $data['file_type'], 'file_path' => $data['file_path'], 'full_path' => $data['full_path'], 'raw_name' => $data['raw_name'], 'orig_name' => $data['orig_name'], 'client_name' => $data['client_name'], 'file_ext' => $data['file_ext'], 'file_size' => $data['file_size'], 'image_width' => $data['image_width'], 'image_height' => $data['image_height'], 'image_type' => $data['image_type'], 'image_size_str' => $data['image_size_str'] ); $this->db->insert('tb_image', $query); $this->session->set_flashdata('msg', 'File berhasil di input!'); redirect(site_url()); } $data['result'] = $this->db->get('tb_image')->result(); $this->load->view('upload_view', $data); } public function download_file($str) { force_download('./upload/'.$str, null); } }Buat sebuah file baru dengan upload_view di
./application/views/
. Dan ketikkan sintak berikut ini:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Upload dan Download</title> </head> <body> <?php echo $this->session->flashdata('msg'); echo form_open_multipart(); echo form_upload('file_name'); echo form_submit('upload', 'Upload'); echo form_close(); ?> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> <td></td> <th align="left">File Name</th> <th align="left">File Type</th> <th align="left">Full Path</th> <th align="left">File Size</th> </tr> <?php foreach ($result as $data) { echo '<tr>'; echo '<td>'.img(array('src' => 'upload/'.$data->file_name, 'width' => '80', 'height' => '50')).'</td>'; echo '<td>'.$data->file_name.'</td>'; echo '<td>'.$data->file_type.'</td>'; echo '<td>'.$data->full_path.'</td>'; echo '<td>'.$data->file_size.'</td>'; echo '<td>'.anchor('upload/download_file/'.$data->file_name, 'Download').'</td>'; echo '</tr>'; } ?> </table> </body> </html>Dan terakhir buat lah sebuah folder baru dengan nama upload. Maka akan membentuk stuktur folder sebagai berikut:
./application/ ./system/ ./upload/ index.php