PHP Programming
Cara Mengupload Photo seperti Photo Galeri Friendster menggunakan PHP

Cara Mengupload Photo seperti Photo Galeri Friendster menggunakan PHP

Oleh | Sabtu, 19 Januari 2008 07:56 WIB | 6.879 Views | Comments 2008-01-19 07:56:25

Bagi Programmer PHP yang baru memulai biasanya akan mencoba mengupload photo tanpa diregenerate terlebih dahulu sehingga file sebesar apapun fotonya maka ia akan simpan kedalam hosting. Coba kita lihat apa yang dilakukan oleh friendster.com atau website yang sering menyediakan fasilitas photo galeri bagi membernya. dan ternyata ketika si member mengupload photo maka system akan mengenerate menjadi ukuran yang lebih kecil dan membuat duplikasi berdasarkan kebutuhan, misalkan untuk ukuran thumnail 100 pixel dan ukuran zoom sebesar 500 pixel. Bagaimana mana caranya? mari kita belajar bersama-sama.

Dalam hal ini kita akan menggunakan fasilitas GD Librari dan biasanya sudah terinstall otomatis, coba kita lihat di phpinfonya, pastikan sudah terinstall, dan satu lagi kita menggunakan GD2 bukan GD1.

Hal pertama yang kita lakukan biasanya adalah membuat form upload itu sendiri, anggap saja kita sudah punya database member yang mempunyai field nama,id,gambarthum,gambarzoom,captiongambar dengan MySQL, selanjutnya kita akan buat formnya seperti dibawah ini :





 
     
     
     
   
   
     
     
     
   
   
     
     
     
   
   
     
     
     
   

 

Photo :  
Keterangan : <? echo $ket ?>
    Sisa Karakter
         
         
     



kita simpan sebagai file upload.php misalnya, Kita lihat file diatas, ada beberapa javascript yang saya tambahkan yaitu berfungsi untuk membatasi caption atau keterangan suatu gambar, saya batasi 250 karakter, sekarang kita akan buat file untuk simpannya dengan nama simpan.php yang isinya sebagai berikut :


$keterangan = $_POST[keterangan];
$id = $_POST[id];

$lokasiphoto = "/home/adisumaryadi/public_html/galeri/"; //pastikan lokasi ini sudah dichmod 777
$lebar_gambar_maks=500;  //ukuran gambar zooming
$lebar_gambar_kecil_maks=200; // ukuran gambar kecil
$lebar_gambar_kecil_maks1=100; // ukuran gambar kecil
$time = date("Ymdhis");

$namafoto1 ="$_SESSION[user_id]_$time";

    if($_FILES[gambar][size] > 0){
   
        $jenisgambar = $_FILES[gambar][name];
        $jenisgambar = explode(".",$jenisgambar);
        $jenis = $jenisgambar[1];
               
        $nama_foto = "$namafoto1"."."."$jenis";
        $nama_fotobesar = "$namafoto1".""."besar".".$jenis";


        if(($jenis=="jpeg") || ($jenis=="jpg") || ($jenis=="JPEG") || ($jenis=="JPG") )

                {
               
                $src_img = imagecreatefromjpeg($_FILES[gambar][tmp_name]);
                $lebar_awal = imagesx($src_img);
                $tinggi_awal = imagesy($src_img);
                $new_w=$lebar_gambar_kecil_maks;
                $new_h = ($new_w/$lebar_awal)*$tinggi_awal;
                $dst_img = imagecreatetruecolor($new_w,$new_h);
                imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w, $new_h,imagesx($src_img),imagesy($src_img));
                imagejpeg($dst_img, "$lokasiphoto$nama_foto");
                $foto="$nama_foto";
               
                $src_img = imagecreatefromjpeg($_FILES[gambar][tmp_name]);
                $lebar_awal = imagesx($src_img);
                $tinggi_awal = imagesy($src_img);
                $new_w=$lebar_gambar_maks;
                $new_h = ($new_w/$lebar_awal)*$tinggi_awal;
                $dst_img = imagecreatetruecolor($new_w,$new_h);
                imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w, $new_h,imagesx($src_img),imagesy($src_img));
                imagejpeg($dst_img, "$lokasiphoto$nama_fotobesar");
                $fotobesar="$nama_fotobesar";
               
                $benar_2 = true;
                }
                else if(($jenis=="gif"))
                {
                $src_img = imagecreatefromgif($_FILES[gambar][tmp_name]);
                $lebar_awal = imagesx($src_img);
                $tinggi_awal = imagesy($src_img);
                $new_w=$lebar_gambar_kecil_maks;
                $new_h = ($new_w/$lebar_awal)*$tinggi_awal;
                $dst_img = imagecreatetruecolor($new_w,$new_h);
                imagecopyresized($dst_img,$src_img,0,0,0,0, $new_w,$new_h,imagesx($src_img),imagesy($src_img));
                imagegif($dst_img, "$lokasiphoto$nama_foto");
                $foto="$nama_foto";
               
                $src_img = imagecreatefromgif($_FILES[gambar][tmp_name]);
                $lebar_awal = imagesx($src_img);
                $tinggi_awal = imagesy($src_img);
                $new_w=$lebar_gambar_kecil_maks;
                $new_h = ($new_w/$lebar_awal)*$tinggi_awal;
                $dst_img = imagecreatetruecolor($new_w,$new_h);
                imagecopyresized($dst_img,$src_img,0,0,0,0, $new_w,$new_h,imagesx($src_img),imagesy($src_img));
                imagegif($dst_img, "$lokasiphoto$nama_fotobesar");
                $fotobesar="$nama_fotobesar";
               
               
                $benar_2 = true;
                } else { $benar_2 =false;}

       
        if($benar_2)
        {

        // update file member       
        $sql = "update member set gambarthum='$nama_foto',gambarzoom='$nama_fotobesar', captiongambar='$keterangan' where id='$_SESSION[user_id]'";
        // eksekusi SQL menggunakan kesukaan anda dan querynya sepertinya seperti diatas dan baiknya menghasilkan parameter $hsl bernilai true atau false
        }
       
        if($hsl) {
        echo"

berhasil upload photo

";
        }
        else
        {
        echo"

Gagal upload photo

";
        }
    }

?>

Sekarang tugasnya adalah menampilkan kedalam webkita. Coba kita lihat file yang digenerate tadi maka akan menghasilkan file yang berukuran kecil dan besar seperti dibawah ini :

#adisumaryadi@adilinux : cd /home/adisumaryadi/public_html/album
#adisumaryadi@adilinux : ls

dan hasilnya adalah

-rw-r--r-- 1 www-data www-data 12228 2008-01-14 11:27 1_20080114112706besar.jpg
-rw-r--r-- 1 www-data www-data  5381 2008-01-14 11:27 1_20080114112706.jpg
-rw-r--r-- 1 www-data www-data 16851 2008-01-14 11:32 1_20080114113203besar.jpg
-rw-r--r-- 1 www-data www-data  7483 2008-01-14 11:32 1_20080114113203.jpg
-rw-r--r-- 1 www-data www-data  9307 2008-01-14 11:32 1_20080114113233besar.jpg
-rw-r--r-- 1 www-data www-data  4302 2008-01-14 11:32 1_20080114113233.jpg
-rw-r--r-- 1 www-data www-data 21119 2008-01-14 11:44 1_20080114114403besar.jpg
-rw-r--r-- 1 www-data www-data  8125 2008-01-14 11:44 1_20080114114403.jpg
-rw-r--r-- 1 www-data www-data 16311 2008-01-14 11:44 1_20080114114430besar.jpg
-rw-r--r-- 1 www-data www-data  7035 2008-01-14 11:44 1_20080114114430.jpg


Baca atau Download PDF Adi Sumaryadi - Bicara IT dan Internet







Mungkin anda tertarik menonton video tentang Produk atau Services? - Belajar Bisnis Digital 3


PHP Programming Lainnya
Tips Keamanan, Register Global dalam PHP
Senin, 28 Mei 2007 06:12 WIB
Tips Keamanan, Register Global dalam PHP
Validasi Email pada Form di Halaman Web
Minggu, 08 April 2007 22:43 WIB
Validasi Email pada Form di Halaman Web
Membuat Counter Web dengan Images
Minggu, 08 April 2007 22:38 WIB
Membuat Counter Web dengan Images