Contoh Source Code PHP Untuk Menyimpan Gambar Ke Dalam Database
Sebelum kita dapat menyimpan data gambar maka harus dibuat terlebih dahulu tabel didalam sebuah database jika database belum ada silahkan untuk membuatnya terlebih dahulu. Baca cara . File gambar yang nantinya tersimpan akan diperkecil ukurannya namun dengan rasio yang tetap.
File tersebut tersimpan dalam bentuk biner dan tidak dapat diterjemaahkan secara langsung, jadi maksudnya bukan path dimana file itu disimpan sehingga untuk dapat menampilkannya anda harus membuat file tersendiri.
Anda bisa menggunakan tipe data blob, medium blob ataupun long blob. Berikut tipe data atau struktur tabel yang harus anda buat.
Berikut adalah Contoh Source Code Untuk Menyimpan Gambar Ke Dalam Database. Jangan lupa untuk membuat koneksi ke databse terlebih dahulu. Silahkan baca Cara Membuat Koneksi ke Database Mysql Menggunakan Script PHP
silahkan copy kode di bawah ini
<?php
include('koneksi.php');
if(isset($act)&&$act=="up_foto"){
$id=trim($id);
$editFormAction=$_SERVER['PHP_SELF'];
$img_thumb_width=220;
$img_thumb_width="thumb";
$file_type=$_FILES['imgfile']['type'];
$file_name=$_FILES['imgfile']['name'];
$file_size=$_FILEs['imgfile']['size'];
$file_tmp=$_FILES['imgfile']['tmp_name'];
//melakukan pengecekan apakah user telah melakukan pemilihan gambar
if(!is_uploaded_file($file_tmp)){
echo "<br> Anda belum memilih gambar untuk diupload, silahkan pilih gambar terlebih dahulu";
echo '<meta http-equiv="refresh" content="2; URL=simpan_photo.php">';
exit();
}
//User tidak diizinkan mengupload jika file yang dipilihnya bukan dalam bentuk gambar
$size=GetImageSize("$file_tmp");
if(($size[2]<1) || ($size[2]>4)){
echo '<br> File yang akan anda unggah bukan dalam bentuk gambar';
echo '<meta http-equiv="refresh" content="2; URL=simpan_photo.php">';
exit();
}
//mendapatkan jenis file
$getExt=explode('.',$file_name);
$file_ext=$getExt[count($getExt)-1];
//melakukan pemberian nama secara acak
$rand_name="tmp";
//Mendapatkan lebar ukuran gambar baru
$ThumbWidth=$img_thumb_width;
//Menjaga ukuran gambar
if($file_size){
if($file_type=="image/pjpeg"||$file_type=="image/jpeg"){
$new_img=imagecreatefromjpeg($file_tmp);
}elseif($file_type=="image/x-png"||$file_type=="image/png"){
$new_img=imagecreatefrompng($file_tmp);
}elseif($file_type=="image/gif"){
$new_img=imaggecreatefromgif($file_tmp);
}
//menyimpan lebar dan tinggi gambar menjadi sebuah ratio gambar
list($width,$height)=getimagesize($fie_tmp);
$imageratio=$width/$height;
if($imgratio>1){
$newwidth=$ThumbWidth;
$nweheight=$ThumbWidth/$imgratio;
}else{
$newheight=$ThumbWidth;
$newwidth=$ThumbWidth*$imgratio;
}
//fungsi untuk mengubah ukuran gambar
if(function_exist(imagecreatetruecolor)){
$resized_img=imagecreatetruecolor($newwidth,$nweheight);
}else{
die("Error.Please make sure you have GD library ver 2 +");
}
imagecopyresized($resized_img,$new_img,0,0,0,0,$newwidth,$newheight,$width,$height);
//menyimpan gambar
imageJpeg($resized_img,"$path_thumbs/$rand_name.$file_ext");
ImageDestroy($resized_img);
ImageDestroy($new_img);
$gmb_baru="$path_thumbs/$rand_name.$file_ext";
//proses penyimpanan gambar kedalam databse
$fp=fopen($gmb_baru,'r') or die('Tidak bisa membuka gambar');
$data=fread($fp,filesize("$gmb_baru"));
$data=mysql_escape_string($data);
$sql="INSERT INTO photo SET id=foto='$data'";
$query=mysql_query($sql);
}
}
?>
<h2>
Simpan Gambar kedalam Database</h2>
<form method="POST" enctype="multipart/form-data" action="<?php echo $editFormAction;?>
?act=up_foto">
<input name="imgfile" type="file" id="imgfile" size="35"/>
<input type="Submit" name="submit" Value="Submit"/>
</form>
<!--Menampilkan Photo-->
<?php
$sql=mysql_query("SELECT id FROM photo ORDER BY id DESC limit 9") or die(mysql_error());
$n=1;
while($res=mysql_fetch_array($sql)){if($n%3==0){?>
<img align="middle" src="lihat_gambar.php?id=<?=$res[id]?>" alt="photo" />
<br/><br/>
<?php }else{?>
<img align="middle" src="lihat_gambar.php?id=<?=$res[id]?>" alt="photo" />
<?}?>
<? $n+=1;}?>
Jika sudah selesai, sekarang kita tinggal memikirkan bagaimana cara untuk menampilkan data gambarnya. Anda bisa menggunakn script php berikut untuk menampilkan data gambar yang tersimpan dalam database Script Untuk Menampilkan Gambar
Silahkan copy kode php dibawah ini
<?php
include('koneksi.php');
$sql=mysql_query("SELECT * FROM photo where id ='$id'")or die (mysql_error());
while($res=mysql_fetch_array($sql)){
echo $res['photo'];
}
mysql_free_result($sql);
?>
Mudah bukan? Sekarang anda bisa langsung mencobanya, anda bisa menerapkannya diwebsite yang anda miliki. Contoh script yang saya berikan masihlah sangat sederhana , anda bisa memodifikasinya supaya bisa lebih sempurna. Selamat mencoba dan semoga berhasil.
waduuh...saya bingung mau komentar apa nie mas? gak mudeng saya mah...
ReplyDeleteijin follow blognya aja deh :)
kunjungan pertama nih...
ReplyDeletemakasih sob artikelnya sangat membantu...
ternyata lumayan rumit juga ya mas source code ini, sepertinya mas zaelani sudah hafal banget nih soalnya PHP. semoga aja nggak di PHP-in ya hehehe :D
ReplyDelete