Selamat datang di uCuPbLoG..... Anda dapat menikmati segala fasilitas yang ada dalam blog ini atau menyampaikan komentar anda..... Semoga blog ini dapat bermanfaat buat anda sekalian.... Terima kasih........

Selasa, 08 November 2011

Upload & Resize Gambar di PHP


Hallo sobat blogger, kali ini saya mau share nih gmana caranya upload gambar di php. Tidak lama-lama, langsung saja kita tembak ke sasaran....

Ini struktur tabel nya....
CREATE TABLE IF NOT EXISTS `data_gambar` (
`id_gambar` int(11) NOT NULL AUTO_INCREMENT,
`gambar` varchar(100) NOT NULL,
`gambar_kecil` varchar(100) NOT NULL,
`tanggal_upload` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id_gambar`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Setelah kita selesai membuat tabel di database, kemudian kita membuat file phpnya...

ini file koneksinya..... (koneksi.php)

<?php

$host = "localhost";
$user = "root";
$password = "elektro";
$database = "member";
$con = mysql_connect($host,$user,$password)or die(mysql_error());
if($con == TRUE)
mysql_select_db($database)or die(mysql_error());
?>

setelah file koneksinya, kita buat file utamanya..... (upload_gambar.php)


<?php
include 'koneksi.php';

$idir = "foto/"; // Path To Images Directory
$tdir = "foto/tumb/"; // Path To Thumbnails Directory
$twidth = "250"; // Maximum Width For Thumbnail Images
$theight = "250"; // Maximum Height For Thumbnail Images

$url = $_FILES['imagefile']['name']; // Set $url To Equal The Filename For Later Use
if ($_FILES['imagefile']['type'] == "image/jpg" || $_FILES['imagefile']['type'] == "image/jpeg" || $_FILES['imagefile']['type'] == "image/pjpeg" ) {
$file_ext = strrchr($_FILES['imagefile']['name'], '.'); // Get The File Extention In The Format Of , For Instance, .jpg, .gif or .php

$sameName = 1; // Menyimpan banyaknya file dengan nama yang sama dengan file yg diupload
$handle = opendir($idir);
while(false !== ($file = readdir($handle))){ // Looping isi file pada directory tujuan
// Apabila ada file dengan awalan yg sama dengan nama file di uplaod
if(strpos($file,$_FILES['imagefile']['name']) !== false)
$sameName++; // Tambah data file yang sama
}
/* Apabila tidak ada file yang sama ($sameName masih ‘0') maka nama file pakai
* nama ketika diupload, jika $sameName > 0 maka pakai format “namafile($sameName).ext */

$newName = empty($sameName) ? $url : $url.'('.$sameName.')'.$file_ext;

$copy = copy($_FILES['imagefile']['tmp_name'], "$idir" . "$newName"); // Move Image From Temporary Location To Permanent Location

if ($copy) { // If The Script Was Able To Copy The Image To It's Permanent Location
print 'Image uploaded successfully.<br />'; // Was Able To Successfully Upload Image
$simg = imagecreatefromjpeg("$idir" . "$newName"); // Make A New Temporary Image To Create The Thumbanil From
$currwidth = imagesx($simg); // Current Image Width
$currheight = imagesy($simg); // Current Image Height
if ($currheight > $currwidth) { // If Height Is Greater Than Width
$zoom = $twidth / $currheight; // Length Ratio For Width
$newheight = $theight; // Height Is Equal To Max Height
$newwidth = $currwidth * $zoom; // Creates The New Width
} else { // Otherwise, Assume Width Is Greater Than Height (Will Produce Same Result If Width Is Equal To Height)
$zoom = $twidth / $currwidth; // Length Ratio For Height
$newwidth = $twidth; // Width Is Equal To Max Width
$newheight = $currheight * $zoom; // Creates The New Height
}
$dimg = imagecreate($newwidth, $newheight); // Make New Image For Thumbnail
imagetruecolortopalette($simg, false, 256); // Create New Color Pallete
$palsize = ImageColorsTotal($simg);
for ($i = 0; $i < $palsize; $i++) { // Counting Colors In The Image
$colors = ImageColorsForIndex($simg, $i); // Number Of Colors Used
ImageColorAllocate($dimg, $colors['red'], $colors['green'], $colors['blue']); // Tell The Server What Colors This Image Will Use
}
imagecopyresized($dimg, $simg, 0, 0, 0, 0, $newwidth, $newheight, $currwidth, $currheight); // Copy Resized Image To The New Image (So We Can Save It)
imagejpeg($dimg, "$tdir" . "$newName"); // Saving The Image
imagedestroy($simg); // Destroying The Temporary Image
imagedestroy($dimg); // Destroying The Other Temporary Image
print 'Image thumbnail created successfully.'; // Resize successful

$nama_gambarasli = "$tdir"."$newName";
$nama_gambarkukecil = "$idir"."$newName";

//proses simpan
$sql="insert into data_gambar(gambar,gambar_kecil) values('$nama_gambarasli','$nama_gambarkecil')";
$query=mysql_query($sql) or die (mysql_error());
if($query){
echo "Data Berhasil disimpan.";
}

} else {
print '<font color="#FF0000">ERROR: Unable to upload image.</font>'; // Error Message If Upload Failed
} else {
?>
<script>
alert('ERROR: Wrong filetype (has to be a .jpg or .jpeg)');
</script>
<?php
print '<font color="#FF0000">ERROR: Wrong filetype (has to be a .jpg or .jpeg. Yours is '; // Error Message If Filetype Is Wrong
print $file_ext; // Show The Invalid File's Extention
print '.</font>';
}


?>

Wah cukup jelas kan sobat bloger, tinggal langsung simpan semua file tersebut dalam satu direktori / folder dan akses melalui web server lokal....
Nantikan sharing kita selanjutnya ya....jangan lupa tinggalkan komentar ya...

2 komentar:

Fery Ardiant on Jumat, 20 Januari 2012 pukul 08.18.00 WIB mengatakan...

tulisan nya rata gitu gan?! mbok ya pake syntaxhightliger ato pretify gan...

hehe.

nice share lah :D

Faris Arifiansyah on Senin, 24 Desember 2012 pukul 10.56.00 WIB mengatakan...

Dicoba dulu ah..

Posting Komentar

Jangan Cuma dipendam, Tapi Utarakan ....

 

Masukkan alamat E-mail anda :

Powered by FeedBurner

.::. uCuP bLoG .::. © 2009 is Designed by uCuP bLoG Supported by Tadpole's Notez