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
Quick Code
<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
Quick Code
< ?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..






