-->

Penanganan File dan Image dalam Web framework

Seringkali aplikasi website yang sedang berjalan perlu membuat dan membaca file, entah untuk penyimpanan data setting, log ataupun membuat file bagi keperluan pengunjung. Untuk keperluan ini, kita membuat suatu project file yang mampu membuat file teks, membaca isinya, dan mendapatkan informasi darinya, yang meliputi ukuran, waktu file, dan jenis file. Selain itu, mendaftar file-file yang ada di suatu folder dan mengambil informasi darinya. Untuk mengaktifkan layanan file dilakukan dengan cara me-load helper file menggunakan framework CodeIgniter dengan dua metode :

–Melalui autoload.php
$autoload['helper'] = array('file');
–Secara manual
$this->load->helper('file');
Untuk lebih jelasnya bagaimana kode-kode Code Igniter dalam hal penanganan file, mari kita buat project file berikut ini.
1. Pertama-tama kita buat project baru dengan nama "Testing File".
2. Mula-mula di folder App Config ubah isi file config.php dari :
   $config['base_url'] = "http://example.com/*;,
Menjadi :
   $config['base_url'] = "http://localhost/TestingFile/*;
3. Masih tetap di folder App Config, ubah isi file routes.php dari:
   $route['default_controller'] = "welcome";
Menjadi :
   $route['default_controller'] = "file_con";
4. Di folder App Controller, buat file controller baru dengan nama file_con, dan isinya keseluruhan adalah :

No    Kode per baris
1       <?php
2       Class File_con extends Controller {
3                   function File_con(){
4                               parent::Controller();
5                               $this->load->helper('file');
6       }
7
8       function index(){
9                   $file*"d:\Test2.txt";
10                 if(:file_exist($file)){
11                             write_file($file, "hello world", 'a+');
12                 }
13                 Else{
14                             $content=read_file(file);
15                             $info=get_file_info($file);
16                             echo "Nama file : ".$info['name']."<br>";
17                             echo "Isi File : ".$content."<br>";
18                             echo "server_path : ".$info['server_path'],"<br>";
19                             echo "size : ".$info['size']."<br>";
20                             echo " date : ".(date("d M Y", $info['date']))."<br>";
21                             echo "Type File : ".get_mine_by_extension($info['name')."<br><br>";
22                                        
23                             echo "<b>Daftar File di ".getcwd()."</b><br>";
24                             $dafFile=get_dir_file_info(getcwd()};
25                 foreach($dafFile as $file>=Sisi){
26                             echo $isi('name')."<br>;
27                 }
28     }
29     }
30    
31     ?>

Adapun keterangannya sebagai berikut.
1. Pada baris ke-5, kita load terlebih dahulu helper file supaya kita dapat menggunakan fasilitas file dari Codeigniter.
2. Pada baris ke -9, kita masukkan suatu alamat file ke dalam variable $file.
3. Pada baris ke-10, dengan fungsi file_exist dari PHP sendiri, kita cek ada tidaknya file "d:\Test2.txt";.
4. Jika tidak ada maka pada baris ke-11, dengan fungsi dari helper file, yaitu write_file dibuatlah file tersebut dengan isi "hello world".
5. Tanda a+ artinya append, membuat bila belum ada dan menambahkan jika sudah ada. Tanda lainnya adalah:
      -R, artinya file yang dibuka hanya dapat dibaca, tidak dapat ditulisi dan akan menumbulkan pesan error jika ada usaha untuk menulis ke dalamnya.
      -w, artinya file yang dibuka hanya dapat ditulis dan tidak bisa dibaca. Penulisan terhadap file akan menghapus isi yang sebelumnya.
      -r+, artinya file yang dibuka dapat dibaca dan juga ditulisi. Penulisan terhadap file akan ditambahkan pada bagian awal file.
      -w+, artinya apabila file sudah ada, isinya akan dihapus.
      -a, artinya membuka (membuat bila belum ada) dan menulis di awal file.
6. Jika ada maka yang dilakukan adalah baca isi file tersebut dan masukkan ke dalam variable $content (baris ke-14). Dapatkan informasi file dan masukkan ke variable $info yang bertipe array (baris ke-15).
7. Pada baris ke-16 dengan variable $info diperoleh nama file menggunakan indeks 'name'.
8. Pada baris ke-17 ditampilkan isi file tersebut.
9. Pada baris ke-18 dengan variable $info diperoleh alamat file server menggunakan indeks 'server_path'.
10. Pada baris ke-19 dengan variable $info diperoleh ukuran file menggunakan indeks 'size'.
11. Pada baris ke-20 diperoleh tanggal file dari $info, tetapi harus di-convert terlebih dahulu supaya berformat d-M-Y.
12. Pada baris ke-21 diperoleh type file dengan fungsi get_mime_by_extension dari CodeIgniter.
13. Pada baris ke-24 di daftar semua file yang ada dalam folder Testing File termasuk di sub-subfoldernya.
14. Karena hasil yang diperoleh dalam bentuk array maka digunakan looping foreach (baris ke-25) dan dimasukkan ke variable $isi.
15. Selanjutnya pada baris ke-26 diambil data nama file dari variable $isi. Jika kita ingin yang ditampilkan adalah ukuran bukan nama file maka ganti name tersebut menjadi size. Bahkan ada dapat memperoleh beserta alam servernya jika name tersebut diganti dengan server_path, sehingga kode pada baris-26 tersebut: echo $isi['server_path']."<br>;.
Fungsi lain yang diperoleh dari CodeIgniter adalah delete_files(alamat folder); yang berfungsi untuk menghapus semua file dalam suatu folder. Jika kita tambahkan parameter kedua, yaitu TRUE maka semua file di sub-subfoldernya akan dihapus pula, termasuk subfoldernya. Dan kodenya menjadi:
         delete_files('./path/to/directory/*, TRUE);

b. Penanganan Image
Image manipulation class merupakan class dalam CodeIgniter yang digunakan untuk melakukan manipulasi image (gambar).
Pemanggilan class :
$this->load->library('image_lib');
Ruang lingkup manipulasi image yang dapat ditangani :
–Image Resizing(manipulasi ukuran image)
–Thumbnail Creation(pembuatan thumbnail image)
–Image Cropping(pemotongan suatu image)
–Image Rotating(pemutaran suatu image)
–Image Watermarking(pemberian watermark)            


42     $config['source_image'] = $new_image;
43     $config['new_image'] = $base_path ."/"..'_rotate.jpg";
44     $config['rotation_angle'] = 'hor';
45
46     $this->image_lib->initialize($config);
47
48     $this->image_lib->rotate();
49
50     $new_image = realpath($config[new_image']);
51     if($new_image){
52     $data['imgarr'][] = array('name'->'<h3>Transformasi Kedua: Rotasi Horizontal Image Pertama </h3>', $new_image, 'url'-> $base_url.'/'.basename($new_image));
53 }
54
55     unset($config);
56     $this->unage_lib->clear();
57
58     //Cropping
59
60     $config['create_thumb'] = FALSE;
61     $config['source_image'] = $new_image;
62     $config['new_image'] = $base_path.'/'.basename($config['source_image'],'.jpg').'_crop.jpg;
63     $config['x_axis'] = '100';
64     $config['y_axis'] = '50';
65
66     $this->image_lib->initialize($config);
67
68     $this->image_lib->crop();
69
70     $new_image = real_path($config['$new_image']);
71     if($new_image){
72     $data['imgarr'][] = array('name'->'<h3>Transformasi Ketiga: Crop Image Kedua</h3>', $new_image, 'url'->$base_url./.basename($new_image));
73     }
74
75     unset($config);
76     $this->image_lib->clear();
77
78     //Watermarking
79
80     $config['create_thumb'] = FALSE;
81     $config['source_image'] = $new_image;
82     $config['new_image'] = $base_path ./.basename($config['source_image'],'.jpg')/'_watermark.jpg';
83     $config['wm_text'] = "Copy Left";
84     $config['wm_type'] = 'text';
85     $config['wm_font_size'] = '20';
86     $config['wm_font_color'] = 'ffffff';
87     $config['wm_vrt_alignment'] = 'B';
88     $config['wm_hor_alignment'] = 'C';
89     $config['wm_vrt_offset'] = '0';
90     $config['wm_hor_offset'] = '0';
91
92     $this->image_lib->initialize($config);
93
94     $this->image_lib->watermark();
95
96     $new_image = realpath($config['new_image']);
97     if($new_image){


8) Pada baris ke-17 disimpan nilai tinggi (height) dari file thumbnail gambar hasil manipulasi.
9) Pada baris ke-19 diset nilai variable $config untuk indeks source_image yang nilainya adalah alamat file gambar.
10) Pada baris ke-21 dibuat thumbnail.
11) Pada baris ke-22 diset penanda nama file thumbnail, yang isinya adalah _400x300_thumb.
12) Pada baris ke-23 dimasukkan nilai lebar ke dalam variable array $config.
13) Pada baris ke-24 dimasukkan nilai lebar ke dalam variable array $config.
14) Pada baris ke-26 di-load library 'image_lib yang berguna untuk manipulasi gambar (image) dan dimasukkan nilai konfigurasinya yang terkandung dalam variable array $config.
15) Pada baris ke-28 dilakukan pembuatan file baru hasil manipulasi resize sesuai dengan data yang terkandung dalam variable aray $config tadi.
16) Pada baris ke-30 masukkan alamat file gambar hasil manipulasi tersebut (hasil resize) ke dalam variable $new_image.
17) Pada baris ke-32 dicek apakah hasil manipulasi tersebut ada berdasarkan isi variable $new_image. Jika ada maka .....
////18) Pada baris ke-33 dimasukkan nilai string yang berisi judul gambar dan alamat url file gambar baru tersebut ke dalama variable array $data.
19) Pada baris ke-26, dihapus variable $config.
20) Pada baris ke-37, dikosongkan data konfigurasi yang diberikan pada library image_lib.
21) Masuk pada prosedur merotasi gambar.
22) Pada baris ke-41 pembuatan thumbnail ditiadakan.


35) Pada baris ke-61 diset bajwa gambar yang akan dimanipulasi adalah gambar hasil manipulasi sebelumnya.
36) Pada baris ke-62 diset alamat file hasil manipulasi ini.
37) Pada baris ke-63 diset nilai lebar gambar hasil cropping.
38) Pada baris ke-64 diset nilai tinggi gambar hasil cropping.
39) Pada baris ke-66 dimasukkan data konfigurasi tersebut ke library image_lib.
40) Pada baris ke-68 dilakukanlah proses cropping tersebut.
41) Pada baris ke-70 dimasukkan alamat file hasil cropping tersebut ke variable $new_image.
42) Pada baris ke-71 diperiksa apakah ada nilai yang dimasukkan ke dalam variable $new_image tersebut. Jika ada berarti file gambar manipulasi memang ada. Dan data tersebut dimasukkan ke variable array $data, beserta alamat url-nya.
43) Pada baris ke-75 dihapus variable $config dari memory.
44) Pada baris ke-76 dihapus data konfigurasi yang telah diberikan ke variable image_lib.
45) Masuk pada manipulasi dengan watermarking (memberi tanda pada gambar).
46) Pada baris ke-80 dibuat kembali variable array $config dan diset bahwa tidak akan dibentuk thumbnail.
47) Pada baris ke-81 diset sumber gambar yang akan dimanipulasi, yaitu gambar hasil manipulasi sebelumnya.
48) Pada baris ke-82 diset alamat file bari hasil manipulasi dengan watermarking.
49) Pada baris ke-83 diset bahwa kalimat yang akan menjadi watermark adalah "Copy Left".
50) Pada baris ke-84 diset jenis watermarking yang diberikan adalah text bukan gambar.
51) Pada baris ke-85 diset ukuran huruf untuk watermark adalah 20 point.
52) Pada baris ke-86 diset warna huruf adalah putih (RGB:ffffff).
53) Pada baris ke-87 diset posisi watermark sevara vertical adalah dibawah (B). Nilai lainnya adalah T untuk posisi atas dan M untuk di tengah.
54) Pada baris ke-88 diset posisi watermark secara horizontal adalah ditengah (C), nilai lainnya adlaah L untuk kiri dan R untuk kanan.
55) Pada baris ke-89 dan 90 diset posisi peletakkan teks watermark adalah 0, baik secara vertical maupun horizontal.
56) Pada baris ke-92 dimasukkan data konfigurasi tersebut ke library image_lib.
57) Pada baris ke-94 dilakukanlah watermarking berdasarkan data konfigurasi yang diberikan ke library image_lib.
58) Pada baris ke-96 dimasukkan data alamat gambar hasil manipulasi ini ke variable $new_image.
59) Pada baris ke-97 dicek apakah berhasil ada nilai pada variable $new_image tersebut. Jika ada maka dilakukan perintah selanjutnya pada baris ke-98.
60) Pada baris ke-98 dimasukkan data file gambar tersebut meliputi judul gambar dan alamat url gambar tersebut.
61) Pada baris ke-100 dipanggilllah view imgtest dan data yang dikirimkan adalah data dari variable $data yang telah kita isi dengan data-data judul gambar dan alamat url dari gambar-gambar hasil manipulasi dan gambar aslinya.0000

 No   Kode Per Baris
1       <html><head>
2       <title>Testing Image</title>
3       </head>
4       <body>
5       <h2>Hasil Testing Manipulasi Image dengan CodeIgniter</h2>
6
7       <d1>
8       <?php foreach($imgarr as $k => $v){ ?>
9       <dt><?php echo $v['name']'?></dt>
10     <dd><img src="<?php echo $v['url];?>" Title='<?php echo $v['url'];?>"</dd>
11     <?php }?>
12     </dl>
13     </body></html>
  
Keterangan kode di dalam file view ini cukup sederhana, yaitu menampilkan data-data yang terkandung dalam variable $data yang telah dikirimkan ke view ini dari controller image_con.

Dan hasilnya jika project ini dijalankan adalah munculnya tampilan pada internet browser seperti gambar berikut ini. 


0 Response to "Penanganan File dan Image dalam Web framework"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel