Penanganan File Dan Image Dalam Web Framework

Seringkali aplikasi website yang sedang berjalan perlu menciptakan dan membaca file, entah untuk penyimpanan data setting, log ataupun menciptakan file bagi keperluan pengunjung. Untuk keperluan ini, kita menciptakan suatu project file yang bisa menciptakan file teks, membaca isinya, dan mendapat warta darinya, yang mencakup ukuran, waktu file, dan jenis file. Selain itu, mendaftar file-file yang ada di suatu folder dan mengambil warta darinya. Untuk mengaktifkan layanan file dilakukan dengan cara me-load helper file memakai 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 gres 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 gres dengan nama file_con, dan isinya keseluruhan yaitu :

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 semoga kita sanggup memakai akomodasi 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, menciptakan bila belum ada dan menambahkan kalau sudah ada. Tanda lainnya adalah:
      -R, artinya file yang dibuka hanya sanggup dibaca, tidak sanggup ditulisi dan akan menumbulkan pesan error kalau ada perjuangan untuk menulis ke dalamnya.
      -w, artinya file yang dibuka hanya sanggup ditulis dan tidak bisa dibaca. Penulisan terhadap file akan menghapus isi yang sebelumnya.
      -r+, artinya file yang dibuka sanggup dibaca dan juga ditulisi. Penulisan terhadap file akan ditambahkan pada bab 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 yaitu baca isi file tersebut dan masukkan ke dalam variable $content (baris ke-14). Dapatkan warta file dan masukkan ke variable $info yang bertipe array (baris ke-15).
7. Pada baris ke-16 dengan variable $info diperoleh nama file memakai indeks 'name'.
8. Pada baris ke-17 ditampilkan isi file tersebut.
9. Pada baris ke-18 dengan variable $info diperoleh alamat file server memakai indeks 'server_path'.
10. Pada baris ke-19 dengan variable $info diperoleh ukuran file memakai indeks 'size'.
11. Pada baris ke-20 diperoleh tanggal file dari $info, tetapi harus di-convert terlebih dahulu semoga 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 dipakai 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 yaitu ukuran bukan nama file maka ganti name tersebut menjadi size. Bahkan ada sanggup memperoleh beserta alam servernya kalau name tersebut diganti dengan server_path, sehingga arahan pada baris-26 tersebut: echo $isi['server_path']."<br>;.
Fungsi lain yang diperoleh dari CodeIgniter yaitu 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 dipakai untuk melaksanakan manipulasi image (gambar).
Pemanggilan class :
$this->load->library('image_lib');
Ruang lingkup manipulasi image yang sanggup 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)            

Baca Juga


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 yaitu alamat file gambar.
10) Pada baris ke-21 dibuat thumbnail.
11) Pada baris ke-22 diset penanda nama file thumbnail, yang isinya yaitu _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 berkhasiat untuk manipulasi gambar (image) dan dimasukkan nilai konfigurasinya yang terkandung dalam variable array $config.
15) Pada baris ke-28 dilakukan pembuatan file gres 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 menurut isi variable $new_image. Jika ada maka .....
////18) Pada baris ke-33 dimasukkan nilai string yang berisi judul gambar dan alamat url file gambar gres 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 mekanisme merotasi gambar.
22) Pada baris ke-41 pembuatan thumbnail ditiadakan.


35) Pada baris ke-61 diset bajwa gambar yang akan dimanipulasi yaitu 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 dibuat 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 yaitu "Copy Left".
50) Pada baris ke-84 diset jenis watermarking yang diberikan yaitu text bukan gambar.
51) Pada baris ke-85 diset ukuran karakter untuk watermark yaitu 20 point.
52) Pada baris ke-86 diset warna karakter yaitu putih (RGB:ffffff).
53) Pada baris ke-87 diset posisi watermark sevara vertical yaitu dibawah (B). Nilai lainnya yaitu T untuk posisi atas dan M untuk di tengah.
54) Pada baris ke-88 diset posisi watermark secara horizontal yaitu ditengah (C), nilai lainnya adlaah L untuk kiri dan R untuk kanan.
55) Pada baris ke-89 dan 90 diset posisi peletakkan teks watermark yaitu 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 menurut 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 mencakup judul gambar dan alamat url gambar tersebut.
61) Pada baris ke-100 dipanggilllah view imgtest dan data yang dikirimkan yaitu 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 arahan 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 balasannya kalau project ini dijalankan yaitu munculnya tampilan pada internet browser ibarat gambar berikut ini. 



Sumber http://www.virtualofworld.com/

Artikel Terkait

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel