Tulisan sebelumnya tentang upload gambar :
1. upload gambar dengan PHP
2. Sebelumnya Mendeteksi type dan ukuran dalam mengupload gambar PHP
Ini adalah kelanjutan upload gambar yang no 3, yaitu Meresize gambar sesuai yang kita inginkan dengan PHP, type dinamis sesuai kebutuhan, bisa JPG, JPEG, PNG, GIF, dll. Kita juga bisa tentukan sendiri ukuran gambar, resize dll
Disini judulnya resize gambar dengan PHP, biar lebih simple.
3. Meresize gambar sesuai yang kita inginkan
Disini kita akan membuat bagaimana ketentuan upload dijalankan, kita atur dalam baris konfigurasi paling atas :
- kita masukkan type gambar yang boleh diupload
- ukuran minimum gambar yang boleh diupload dlm byte
- ukuran maximum gambar yang boleh diupload dlm byte
- folder tujuan, folder dimana file hasil upload akan di letakkan
- folder thumbs, folder dimana file thumbs (hasil resize) akan di letakkan
- lebar gambar, ukuran lebar gambar hasil resize (tinggi akan menyesuaikan berdasarkan rasio)
- prefix, nama awal utk file yg di resize
Seperti biasa, step-stepnya pake a b c dst
a. buat file upload_tiga.php
Quick Code
<form enctype="multipart/form-data" action="upload_tiga_proses.php" method="POST">
Upload file gambar: <input name="foto" type="file" />
<input type="submit" value="Proses Upload" />
</form>
b. buat folder foto_user dan foto_user_thumbs (sesuai dengan konfigurasi di point c)
c. buat file upload_tiga_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) 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 gagal<br />';//upload gagal
}
}
$fileFoto = $_FILES[foto];//mengambil nilai file gambar
$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 tidak diijinkan';
}
} else {
echo 'Type gambar tidak diijinkan';
}
echo '<br />';
echo 'Klik <a href="upload_tiga.php">disini</a> untuk kembali';
?>
Silahkan di coba, custom sendiri yach sesuai keinginan, thanks
Untuk upload banyak gambar, akan di tulis esok, wait ya…






