Upload Gambar Melalui PHP Dengan BLOB Data Type di SQL

Anda dapat menyimpan waktu ketika upload gambar melalui PHP dan menyimpan gambar tersebut di dalam SQL database.

BLOB adalah Binary Large Object. Gambar yang telah di upload, akan tersimpan di dalam SQL database dalam bentuk binary. Cara ini cukup menyimpan waktu. Tentu saja menyimpan gambar di dalam SQL dalam bentuk BLOB tidak selalu pilihan yang bagus. Terlalu banyak gambar yang ingin anda load dari dalam SQL database bisa membuat database anda menjadi lama loadingnya. Jadi, silahkan membuat keputusan bijak sebelum memilih untuk menyimpan gambar di dalam SQL database. Ada saatnya dimana anda akan memilih untuk menyimpan gambar di dalam SQL database dan ada pula saat-saat yang lain dimana anda harus menyimpan gambar-gambar yang anda upload ke dalam folder khusus di dalam web directory anda.
Sebelum terjadi kebingungan khususnya yang masih baru di dalam dunia web programming dan database, saya ingin mengingatkan satu hal. SQL (Structured Query Language) adalah programming language atau bahasa pemrograman yang biasa dipakai untuk manipulasi database. Mungkin sebagian dari anda sering mendengar kata "MySQL". MySQL adalah salah satu software RDBMS (Relational Database Management System) yang memakai SQL di dalamnya. Jadi, SQL adalah programming language dan MySQL adalah software. Tentu saja anda boleh menggunakan software lainnya seperti Oracle atau PostgreSQL dan lain-lain.
Ok. Sekarang saatnya untuk tutorial. Silahkan ikuti cara-cara berikut ini:

1. Buat Database
Silahkan buat database baru dengan nama "upload" atau nama lain yang anda inginkan.
2. Buat Table
Setelah membuat database, anda perlu membuat satu table di dalam database tersebut. Silahkan buat satu table dengan nama "store" atau nama lainnya yang anda inginkan. Dan table tersebut memiliki struktur seperti berikut:
Table "store":
CREATE TABLE store (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
image BLOB NOT NULL,
PRIMARY KEY (id)
);

3. PHP
Kita akan buat index.php ; img.php ; get.php
index.php:
<html>
<head>
<title>Upload</title>
</head>

<body>

<form action="index.php" method="POST" enctype="multipart/form-data">
File:
<input type="file" name="image" accept="image/*"><!--We will allow any type of images such as jpg or png or etc-->
<input type="submit" name="submit" value="Upload">
</form>

<?php
error_reporting(E_ALL ^ E_NOTICE);
//connect to database
mysql_connect("localhost","root","pwd") or die (mysql_error());
mysql_select_db("upload") or die (mysql_error());

if(isset($_POST['submit']))
    {
    //file properties
    $file=$_FILES['image']['tmp_name'];
    $image_name=mysql_real_escape_string($_FILES['image']['name']);
    $image=mysql_real_escape_string(file_get_contents($file));
    $image_size=getimagesize($file);
    
        if($image_size==FALSE)
            {
            echo "That is not an image";
            }
        else
            {
            $insert=mysql_query("INSERT INTO store (name,image) VALUES ('$image_name','$image')");
                if($insert)
                {
                    echo "OK!";
                    $lastid=mysql_insert_id();
                    echo "Image<p/>Your image: <img src=get.php?id=$lastid>";
                }
                else
                {
                    echo "PROBLEM!";
                }
            }
    
    }
else
    {
        echo "That is not an image!";
    }

?>

</body>

</html>

img.php:
<?php
error_reporting(E_ALL ^ E_NOTICE);
mysql_connect("localhost","root","pwd") or die (mysql_error());
mysql_select_db("upload") or die (mysql_error());

$query = mysql_query("SELECT * FROM store");
  while($row=mysql_fetch_array($query))
  {
    echo $id=$row['id'];
    echo ". ";
    echo $row['name'];
    echo " ";
    echo "<img src=get.php?id=$id>";
    echo "<br/>";
  }

?>

get.php:
<?php

mysql_connect("localhost","root","pwd") or die (mysql_error());
mysql_select_db("upload") or die (mysql_error());

$id=mysql_real_escape_string($_REQUEST['id']);

$select=mysql_query("SELECT * FROM store where id=$id");
$image_fetch=mysql_fetch_assoc($select);
$image=$image_fetch['image'];

header("Content-type: image/*");

echo $image;

?>

Setelah siap semuanya, silahkan akses file index.php untuk mulai upload gambar. Setelah itu, buka file img.php untuk melihat gambar yang telah di upload.
Sekian dan terima kasih. Selamat Mencoba...

Labels: , , , , , , , ,