Pada upload codeigniter ada saat tertentu kita pengen membuat semacam identitas foto atau gambar agar terlihat lebih pribadi atau mempunyau tanda bahwa kita pemilik gambar tersebut. Jadi kita perlu melakukan manipulasi terhadap gambar tersebut menggunakan library manipulation. Oke tanpa berpanjang lebar mari kita mulai.
Controller
class Upload extends CI_Controller {
/******************************************************
| Upload
| controller upload manipulasi watermark gambar
| by gTech
*****************************************************/
public function __construct() {
parent::__construct();
$this->load->library('image_lib');
}
//fungsi awal ketika kita panggil controller gambar
public function index(){
$data['judul'] = 'Upload Gambar'; //judul title
$data['queryupload'] = $this->mupload->getallimage(); //model semua file
//template views
$this->load->view('header',$data); //load header
$this->load->view('upload/vupload',$data); //load views
$this->load->view('footer',$data); //load footer
}
//fungsi form tambah ketika kita panggil pada link
public function tambah(){
$data['judul'] = 'Tambah Gambar';
$data['aksi'] = 'aksi_tambah';
//template views
$this->load->view('header',$data);
$this->load->view('upload/vformupload',$data);
$this->load->view('footer',$data);
}
//fungsi form edit ketika kita panggil pada link
public function edit(){
$id = $this->input->get('id');
$data['row'] = $this->mupload->getbyid($id);
$data['judul'] = 'Edit Gambar';
$data['aksi'] = 'aksi_edit';
//template views
$this->load->view('header',$data);
$this->load->view('upload/vformupload',$data);
$this->load->view('footer',$data);
}
//fungsi untuk menangani pemanggilan aksi tambah ketika form di submit
public function aksi_tambah(){
//deklarasikan variabel dari form
$nama = addslashes($this->input->post('nama'));
$keterangan = addslashes($this->input->post('keterangan'));
//validasi
$this->form_validation->set_rules('gambar', 'File Gambar', 'trim|xss_clean'); //file gambar
//configurasi upload
$nmfile = "file_".time(); //nama file saya beri nama langsung dan diikuti fungsi time
$config['upload_path'] = './assets/uploads/'; //path folder
$config['allowed_types'] = 'gif|jpg|png|jpeg|bmp'; //type yang dapat diakses bisa anda sesuaikan
$config['max_size'] = '2048'; //maksimum besar file 2M
$config['max_width'] = '1288'; //lebar maksimum 1288 px
$config['max_height'] = '768'; //tinggi maksimu 768 px
$config['file_name'] = $nmfile; //nama yang terupload nantinya
$this->upload->initialize($config);
if ($this->form_validation->run() == TRUE) {
if ($this->upload->do_upload('gambar')){
$gbr = $this->upload->data();
$config2['source_image'] = './assets/uploads/'.$gbr['file_name'];
//The image path,which you would like to watermarking
$config2['wm_text'] = 'arjunphp.com';
$config2['wm_type'] = 'text';
$config2['wm_font_path'] = './fonts/atlassol.ttf';
$config2['wm_font_size'] = 16;
$config2['wm_font_color'] = 'ffffff';
$config2['wm_vrt_alignment'] = 'middle';
$config2['wm_hor_alignment'] = 'right';
$config2['wm_padding'] = '20';
$this->image_lib->initialize($config2);
if (!$this->image_lib->watermark()) {
echo $this->image_lib->display_errors();
}else{
echo 'Successfully updated image with watermark';
$data = array(
'nm_gbr' => $gbr['file_name'],
'tipe_gbr' => $gbr['file_type'],
'ket_gbr'=> $keterangan
);
$this->mupload->getinsert($data); //model insert data kedatabase
$this->session->set_flashdata("pesan", "Data berhasil di insert"); //pesan yang tampil setalah berhasil di insert
redirect('upload');
}
}else{
$info = array(
'aket'=>$keterangan,
'judul' => 'Tambah Gambar',
'aksi' => 'aksi_tambah'
);
$err = $this->upload->display_errors(); //error upload
$this->session->set_flashdata("pesan", "Data Gagal di insert ".$err);
//ketika error terjadi halaman akan tetap di form
$this->load->view('header',$info);
$this->load->view('upload/vformupload',$info);
$this->load->view('footer',$info);
}
}else{
//ini berfungsi agar field form tidak menjadi kosong, dibuat dalam array
//variabel akan tetap dibawa jika error terjadi pada saat validasi
$info = array(
'aket'=>$keterangan,
'judul' => 'Tambah Gambar',
'aksi' => 'aksi_tambah'
);
$err = validation_errors(); //error validasi akan dimunculkan pada pesan
$this->session->set_flashdata("pesan", "Data Gagal di insert ".$err);
//ketika error terjadi halaman akan tetap di form barang
$this->load->view('header',$info);
$this->load->view('upload/vformupload',$info);
$this->load->view('footer',$info);
}
}
}































Follow Us
Were this world an endless plain, and by sailing eastward we could for ever reach new distances