Categorized | PHP

Mengupload lebih dari satu gambar sekaligus multiple upload dengan PHP (Part 4)

Ini adalah posting yang ke empat tentang upload gambar dengan PHP,
Postingan Sebelumnya adalah
Mengupload gambar dengan PHP
Mendeteksi type dan ukuran dalam mengupload gambar PHP
Meresize gambar sesuai yang kita inginkan dengan PHP

Mengupload lebih dari satu gambar sekaligus multiple upload dengan PHP

disini saya hanya menambahkan beberapa parameter untuk mengupload lebih dari satu gambar sekaligus.
Anda dapat merubah jumlah form input sesuka anda.
Berikut ini langkah-langkah a b c nya :

a. buat file upload_empat.php


<form enctype="multipart/form-data" action="upload_empat_proses.php" method="POST">
    Upload file <br />
< ?php
$jumlahForm = 10;
 
for($i=1;$i<=$jumlahForm;$i++) {
    echo 'gambar '.$i.' : <input name="foto'.$i.'" type="file" /><br />';
}
    echo '<input type="hidden" name="jumlahForm" value="'.$jumlahForm.'" />';
?>
    <input type="submit" value="Proses Upload" />
</form>

Silahkan masukkan jumlah form yang anda inginkan di varible $jumlahForm di atas.

c. buat file upload_empat_proses.php


< ?php
//konfigurasi file gambar
$typeGambar   = array('image/jpg', 'image/jpeg', 'image/png', 'image/gif');//type gambar yg di ijinkan
$ukuranMin    = 1000; //ukuran minimum, dlm byte
$ukuranMax    = 100000; //ukuran maximum, dlm byte
$folderTujuan = './foto_user/'; //folder dimana file akan di letakkan
$folderThumbs = './foto_user_thumbs/'; //folder dimana file thumbs akan di letakkan
$lebarGambar  = 110;//ukuran lebar gambar hasil resize
$prefix       = 'thumbs_';//nama awal utk file yg di resize
 
function resizeGambar($pathFileTujuan,$lebarGambar,$folderThumbs,$namaFileTujuan,$prefix){
  $tipe = ereg_replace(".*\.(.*)$","\\1",$pathFileTujuan);
  @header("Content-type: image/".$tipe);
  
  list($lebar,$tinggi) = getimagesize($pathFileTujuan);
  $lebar_baru = $lebarGambar;
  $tinggi_baru= ($lebar_baru/$lebar) * $tinggi;
  // proses copy resize
  $gambar_baru = imagecreatetruecolor($lebar_baru, $tinggi_baru) or die('Problem In Creating image');
  if($tipe=='jpg' || $tipe=='jpeg') {
     $gambar_asli = imagecreatefromjpeg($pathFileTujuan) or die('Problem In opening Source JPEG Image');
  } elseif($tipe=='gif') {
     $gambar_asli = imagecreatefromgif($pathFileTujuan) or die('Problem In opening Source GIF Image');
  } elseif($tipe=='png') {
     $gambar_asli = imagecreatefrompng($pathFileTujuan) or die('Problem In opening Source PNG Image');
  }
  imagecopyresampled($gambar_baru, $gambar_asli, 0, 0, 0, 0, $lebar_baru, $tinggi_baru, $lebar, $tinggi) or die('Problem In resizing');
 
  // Keluaran
  if($tipe=='jpg' || $tipe=='jpeg') {
     imagejpeg($gambar_baru, $folderThumbs.$prefix.$namaFileTujuan,100) or die('Problem In saving JPEG');
  } elseif($tipe=='gif') {
     imagegif($gambar_baru, $folderThumbs.$prefix.$namaFileTujuan) or die('Problem In saving GIF');
  } elseif($tipe=='png') {
     imagepng($gambar_baru, $folderThumbs.$prefix.$namaFileTujuan) or die('Problem In saving PNG');
  }
  //hapus resource gambar
  imagedestroy($gambar_baru);
  imagedestroy($gambar_asli);
}
 
function cekType($fileFoto,$typeGambar) {
    $typeFile = strtolower($fileFoto[type]);
  if(in_array($typeFile,$typeGambar)) {
    return true;
  } else {
    return false;
  }
}
function cekUkuran($fileFoto,$ukuranMin,$ukuranMax) {
  if($fileFoto[size] > $ukuranMin AND $fileFoto[size] < $ukuranMax) {
     return true;
  } else {
     return false;
  }
}
function namaFileTujuan($fileFoto,$folderTujuan){
$fileTujuan = $folderTujuan.$fileFoto['name'];
$namaFile = $fileFoto['name'];
  if(file_exists($fileTujuan)) { //jika nama file sudah ada, rename sesuai dengan urutan
    $i=0;
      while (file_exists($fileTujuan)) {
         $fileTujuan = $folderTujuan.$i.'_'.$fileFoto['name'];
         $namaFile = $i.'_'.$fileFoto['name'];
         $i++;
      }
  }
return $namaFile;
}
function prosesUpload($fileFoto,$pathFileTujuan) {
    if (@move_uploaded_file($fileFoto['tmp_name'], $pathFileTujuan)) {
     echo  'Upload file di '.$pathFileTujuan.' Sukses<br>';//sukses
    }  else {
     echo  'Upload file di '.$pathFileTujuan.' gagal<br />';//upload gagal
    }
}
 
for($i=1;$i< =$_POST[jumlahForm];$i++) {
$foto = 'foto'.$i;
$fileFoto = $_FILES[$foto];//mengambil nilai file gambar
if($fileFoto[name]!='') {
    $cekType  = cekType($fileFoto,$typeGambar);//cek type file
    $cekUkuran= cekUkuran($fileFoto,$ukuranMin,$ukuranMax);//cek ukuran file
    
    if($cekType) {
       if($cekUkuran) {
       $namaFileTujuan = namaFileTujuan($fileFoto,$folderTujuan);//cek file tujuan upload,
       $pathFileTujuan = $folderTujuan.$namaFileTujuan;//membuat alamat file tujuan
       $prosesUpload   = prosesUpload($fileFoto,$pathFileTujuan);//proses upload
       $prosesResized  = resizeGambar($pathFileTujuan,$lebarGambar,$folderThumbs,$namaFileTujuan,$prefix); //proses resize
       } else {
         echo 'Ukuran gambar no '.$i.'  tidak diijinkan<br>';
       }
    } else {
      echo 'Type gambar no '.$i.' tidak diijinkan<br />';
    }
} else {
   echo 'File no '.$i.' kosong<br />';
}
}
echo '<br />';
echo 'Klik <a href="upload_empat.php">disini</a> untuk kembali';
?>

File ini hampir sama dengan posting sebelumnya, hanya ada tambahan iterasi untuk memproses jumlah gambar yang akan diupload.

Silahkan kembangkan sendiri, di otak-atik juga bisa.
Moga bermanfaat yach..

9 Comments For This Post

  1. baron Says:

    mas punten ah.. cara masukin nama images yg udah kita upload ke databes gimana.. supaya namanya bisa ditampilin guna untuk menampilkan gambar yg udah kita aplot di halaman webset kita

  2. admin Says:

    Alangkah lebih baik kl di simpan di folder aja filenya. Tapi nama filenya saja yang di record di database, nah untuk mengambil informasi nama file yang di upload, anda bisa mengambil kembalian / return pada fungsi dengan parameter $fileFoto[’name’]

    Silahkan mencoba

  3. akira_yuki Says:

    ssssssiiiiiiiiiiipppppppppp……….. multiupload gw banget…. dicari2 cara loopingnya ternyata kok gampang bener…….

    thx alot

  4. Wayan Arimawan Says:

    mas websitenya udah saya bikin dgn dreamweaper, tapi begitu saya Upload kok gambarnya gak kelihatan ya. apa ada yang salah ya. SAya pernah pake FrontPage ok-ok aja. Tapi disni saya menemukan masalah yang lebih sulit lagi. Mohon bantuanyya dong mas, mg tambah sukses ilmunya. :D

  5. sapta Says:

    wah mas thanks buanget tutorialnya… sips mudah di pelajari… ijin ikutan belajar PHP

  6. gtata@yahoo.com Says:

    kalo bikin databasenya gmana?

  7. rae Says:

    om minta script upload multi image yang lengkap jangan setengah2x

  8. athrees Says:

    gimana script nya kalo gambar yang kita upload dirubah nama filenya.. misalkan foto.jpg diganti dengan 101.jpg saya butuh banget nih… karena soalnya dah bisa di upload saat upload gambar yg beda tapi nama filenya sama saat pemanggilan gambar hanya 1 yang tampil terus tidak bisa gantian.. gitu

  9. tohar Says:

    kang piye carane edit data base???????

Leave a Reply

  • Popular
  • Comments
  • Tags
  • Subscribe
Advertise Here

Category

Tag Cloud