Tulisan
 
  Aktual dan Umum (10)
  Animasi Flash (1)
  Artikel (19)
  Browsing (5)
  Cerita dan Kisah (5)
  Cerita Lucu (3)
  Curhat (9)
  Data dan Internet Tutorial (2)
  HTML Tutorial (3)
  Islam dan Seputarnya (8)
  Java Programming (1)
  Java Script dan CSS (1)
  Linux dan Seputarnya (5)
  Networking dan Hardware (6)
  PHP Programming (14)
  Sudut Pandang (20)
  Teknologi Informasi (23)
  Tentang Database (2)
  Web Desain and Development (5)
  Windows dan Seputarnya (6)
 
Ngobrol Bareng Adi Sumaryadi langsung aja klik salah satu Messanger kesukaan anda:
Yahoo Facebook
Facebook Adi Sumaryadi

depanlastcomment
asyima puteri asyima puteri dalam Cintaku Kandas Juga Ditengah Jalan
Del Prio Del Prio dalam Tips Optimasi dan Mengontrol MySQL
ligan ligan dalam Pilihan Hosting Control Panel Gratis dan Opensource
sri sri dalam Mengedit Film Menggunakan Movie Maker
zacky zacky dalam Orang Jawa Cenderung Lebih Pede Ketimbang Orang Sunda
Judul
Cara Mengupload Photo seperti Photo Galeri Friendster menggunakan PHP

Oleh : Adi Sumaryadi

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 hostingan. 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 :

<script>
function textCounter(field, countfield, maxlimit) {
              if (field.value.length > maxlimit) {
              field.value = field.value.substring(0, maxlimit);
              } else {
              countfield.value = maxlimit - field.value.length;
              }
}
</script>

<form ENCTYPE="multipart/form-data" method="post" action="simpan.php" name="form1">
<input type="hidden" name="id" value="1">
  <table width="100%" border="0" cellspacing="2" cellpadding="2" class="tabelpolos">
      <td width="27%" valign="top">Photo</td>
      <td width="1%" valign="top">: </td>
      <td width="72%"><INPUT TYPE=FILE NAME="gambar" class="daftar"></td>
    </tr>
    <tr>
      <td valign="top">Keterangan</td>
      <td valign="top">: </td>
      <td class="isi"><textarea name="keterangan"  class=profil onKeyDown="textCounter(document.form1. keterangan,document.form1.inputcount,250);" onKeyUp="textCounter(document.form1.keterangan, document.form1.inputcount,250);"><? echo $ket ?></textarea></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td class="isi"> Sisa Karakter
          <input readonly type="text" name="inputcount" size="5" maxlength="4" value="" class="textfieldkecil">
          <script language="JavaScript">
        document.form1.inputcount.value = (250 - document.form1.keterangan.value.length);
          </script></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td class="isi"><input type="submit" name="Submit" value="Simpan" class="button"></td>
    </tr><input type="hidden" name="aksi" value="simpanalbum">

  </table>
</form>


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"<p align=center>berhasil upload photo</p>";
        }
        else
        {
        echo"<p align=center>Gagal upload photo<p>";
        }
    }

?>


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


Cetak Tulisan Kirim Keteman Arsip Share ke Facebook


Tulisan lainnya :
- Membuat Bukutamu dengan PHP dan MySQL (Pra Advance)
- Mengenal Smarty Template Enggine
- Mengirimkan Email Format HTML dan Plaintext Menggunakan PHP
- Mengenal Web 2.0
- Tips Optimasi dan Mengontrol MySQL
Komentar
alfi 1 - Minggu, 01 Juni 2008 11:25 WIB
alfi,mahasiswa di radar auri pp2 aa2 depok
pak sy udah cb Cr Mgupload Photo spt frnstr pk microst ps nyimpan di Mysql ggl namun muncul gambar gagal diserver,knp pake update bkn insert.thank,mhn pjlsan
ThreeAnz 2 - Senin, 01 September 2008 15:00 WIB
ThreeAnz,Pelajar di Jakarta
bagus2 banget gw lagi butuh ky gitu scriptnya....
Sofian_AnS 3 - Sabtu, 13 Desember 2008 05:21 WIB
Sofian_AnS,- di -
Thx Pak.. sangat membantu infonya.. oia saya kasih masukan.. kalau lagi ngantuk jangan sentuh2 Cpanel.. Data saya kehapus semua karena saya teledor.. dan belum sempat backup database T_T untung website sendiri.. coba klo punya perusahaan.. hiks.. ada ga software untuk kembaliin data hosting yang terhapus?? hhehe..
weny 4 - Kamis, 05 Februari 2009 10:55 WIB
weny,mahasiswa di banjarmasin
pak...saya ingin meng upload fhoto di friendster melalui kabel data,namun tidak berhasil. bagaimana caranya pak????? tolong dijelaskan. berhubung saya orang baru dalam pengguna internet, mohon penjelasannya. thanks....
nurul 5 - Selasa, 05 Mei 2009 21:09 WIB
nurul,pelajar di Jln.parkit raya 3
pak,,, saya ingin mengpload foto, tp pakai CD, bs tdk pak ????
kalau bisa, tolong jelaskan bagaimana caranya. thanks...
vivi 6 - Kamis, 28 Mei 2009 20:46 WIB
vivi,pelajar di jayapura
tapi aku masih gak ngerti, gimana sich cara menampilkan fhoto di friendster, ya ampun... aku bingung banget, masih orang awam siechhh... siapapun yang tau, tolong kirim infonya di: manis_ac@yahoo.com
trims semuanya...
bantu aku si anak terpencil yach...
dj_afran 7 - Rabu, 19 Agustus 2009 20:32 WIB
dj_afran,pelajar di tangerang
mas..
klo cara nampilin'a gmn mas..??
tampilan pertama untuk album..
setelah di klik album'a..
akan tampil thumbnail yang ada di dalam album tersebut..
dan setelah di klik thumbail'a..
akan muncul thumbnail yang di klik tersebut..

mohon pencerahan'a mass..
newbie di sini..
^^

tolong di balas ke email saiia yah..
dj_afran@yahoo.co.id

thanks mass..
^^
matley 8 - Rabu, 17 Maret 2010 12:37 WIB
matley,mhs di bogor
mas klo mw nampilin semua image yg ada dlam 1 folder untuk d tampilin pda halaman web gmn ya mas ??
mohon bantuan'a ya mas..trima kasih .
email sya : matley.dreamer@gmail.com
Nama Email
Alamat Pekerjaan
Homepage / Blog Notifikasi
Komentar

Masukan kata yang ada dalam gambar diatas
Kunjungan 1.042.151 klik
Website ini dibuat dan dimaintenance oleh Adi Sumaryadi 2007