Menyimpan Gambar di Database MySql dengan PHP

Iseng-iseng ane dapet tugas untuk nyimpen gambar dalam bentuk blob dan menampilkanya dalam browser. Blob itu adalah suatu tipe data DBMS yang berstruktur field biner.

Ok kita langsung ke TKP…
Sekarang kita buat table dulu

CREATE TABLE IF NOT EXISTS `gambar` (`id` bigint(20)
NOT NULL auto_increment,
`file_content`
mediumblob NOT NULL,
`file_name` varchar(255) NOT NULL,
`file_type` varchar(255) NOT NULL,
`file_size` bigint(20)
NOT NULL default ’0′,
PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

selanjutnya buat file gambar.php dengan script berikut:
<?php
// connect to database
@mysql_connect(“localhost”, “root”, “password database”) OR die (“Tidak Terkoneksi dengan Database”);
@mysql_select_db(“nama database”) OR die (“Terkoneksi Tapi Tidak Terhubung dengan Database Manapun”);
//membuat tampilan. Tampilan berupa upload file. File yang kita upload akan disimpan ke database
echo “<form method=\”post\” name=\”form1\” enctype=\”multipart/form-data\”>”;
echo ” <input name=\”file\” type=\”file\”>”;
echo ” <input name=\”submit\” type=\”submit\” value=\”Upload\”>”;
echo “</form>”;
if($_POST[submit]){
//variabel-variabel yang digunakan untuk menyimpan data-data mengenai file ke database
$file_name = $_FILES['file']['name'];
$tmp_name  = $_FILES['file']['tmp_name'];
$file_size = $_FILES['file']['size'];
$file_type = $_FILES['file']['type'];
// membuka atau membongkar file
$fp = fopen($tmp_name, ‘r’);
// membaca isi dari file, membaca kode binarynya
$file_content = fread($fp, $file_size) or die(“Error: cannot read file”);
// menyimpan kode binarynya ke variabel, ini yang nanti akan kita simpan di database
$file_content = mysql_real_escape_string($file_content) or die(“Error: cannot read file”);
//menutup kembali filenya
fclose($fp);
// insert ke database
$qu = “INSERT INTO `file`
(`file_content`,`file_name`,`file_type`,`file_size`)
VALUES
(‘$file_content’,’$file_name’,’$file_type’,’$file_size’)”;
$re = mysql_query($qu) or die (“insert gagal!”);
echo $file_name.” insert succes”;
// kode untuk menampilkan gambarnya.. lihat source code dari tampilkan.php
echo ” <img src=\”tampilkan.php\”> “;}?>

Langkah selanjutnya membuat lihat.php dengan script berikut:
<?
// Connect ke database
@mysql_connect(“localhost”, “root”, “password database”) OR die (“Tidak Terkoneksi dengan Database”);
@mysql_select_db(“nama database”) OR die (“Terkoneksi Tapi Tidak Terhubung dengan Database Manapun”);
// Query untuk mengambil data ke database untuk ditampilkan. Untuk contoh, kita akan ambil gambar pertama dari database kita,, ditandai dengan
$query = “SELECT file_content, file_name, file_type, file_size FROM file WHERE”;
$result = mysql_query($query);
// hasil dari query tadi kita simpan ke variable
$content = mysql_result($result,0,”file_content”);
$name = mysql_result($result,0,”file_name”);
$type = mysql_result($result,0,”file_type”);
$size = mysql_result($result,0,”file_size”);
// header untuk memberi tahu browser jenis data yang akan ditampilkan
header(“Content-type: $type”);
// data gambar/foto dikirim ke browser
echo $content

?>

Gimana mudah bukan..

If you enjoyed this post, please consider leaving a comment or subscribing to the RSS feed to have future articles delivered to your feed reader.

  1. Database Modeling dengan Workbench 5.1.18 Bug nyebelin
  2. Tools Optimasi Gambar untuk Web Design
  3. Bash Script Monitoring sederhana dengan mail Alert

9 comments

  1. zee says:

    nice.. thx pal..

  2. haris says:

    Fatal error: Call to undefined function: mysql_real_escape_string() in c:\apache\htdocs\upload\gambar.php on line 22

    tolong pencerahanya ni line 22 di komputer saya..

    $file_content = mysql_real_escape_string($file_content) or die(“Error: cannot read file”);

  3. haris says:

    ni listing keseluruhannya..

    <?php
    // connect to database
    @mysql_connect("localhost","","") OR die ("Tidak Terkoneksi dengan Database");
    @mysql_select_db("upload") OR die ("Terkoneksi Tapi Tidak Terhubung dengan Database Manapun");
    //membuat tampilan. Tampilan berupa upload file. File yang kita upload akan disimpan ke database
    echo "”;
    echo “”;
    echo ” “;
    echo “”;
    if($_POST[submit])
    {
    //variabel-variabel yang digunakan untuk menyimpan data-data mengenai file ke database
    $file_name = $_FILES['file']['name'];
    $tmp_name = $_FILES['file']['tmp_name'];
    $file_size = $_FILES['file']['size'];
    $file_type = $_FILES['file']['type'];
    // membuka atau membongkar file
    $fp = fopen($tmp_name, ‘r’);
    // membaca isi dari file, membaca kode binarynya
    $file_content = fread($fp, $file_size) or die(“Error: cannot read file”);
    // menyimpan kode binarynya ke variabel, ini yang nanti akan kita simpan di database
    $file_content = mysql_real_escape_string($file_content) or die(“Error: cannot read file”);
    //menutup kembali filenya
    fclose($fp);
    // insert ke database
    $qu = “INSERT INTO ‘file’
    (‘file_content’,’file_name’,’file_type’,’file_size’)
    VALUES
    (‘$file_content’,’$file_name’,’$file_type’,’$file_size’)”;
    $re = mysql_query($qu) or die (“insert gagal!”);
    echo $file_name.”insert succes”;
    // kode untuk menampilkan gambarnya.. lihat source code dari tampilkan.php
    echo ” “;}
    ?>

  4. haris says:

    error keluar pas upload gambar..

  5. haris says:

    lihat.php

    Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\upload\lihat.php on line 9

    Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\upload\lihat.php on line 10

    Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\upload\lihat.php on line 11

    Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\upload\lihat.php on line 12

    Warning: Cannot add header information – headers already sent by (output started at c:\apache\htdocs\upload\lihat.php:9) in c:\apache\htdocs\upload\lihat.php on line 14

    ni listingnya mohon pen cerahannya..

  6. wahyu says:

    Fatal error: Call to undefined function get_magic_quotes_gpc() in C:\AppServ\www\coba\simpan_dan_menampilkan.php on line 26
    gmn itu boz,,??binggung saia,,maklum pemula php..
    itu semua murni dari link http://www.satudetik.com/wp-content/uploads/2010/06/coba1.zip,,saya test muncul seperti itu.thank

  7. fida says:

    xjadi…keluar ini

    Parse error: parse error in C:\xampp\htdocs\gambar.php on line 3

  8. Luhut says:

    Postingannya singkat tapi cukup bermanfaat.

    Thanks

Leave a Reply

Your email address will not be published. Required fields are marked *


*

What is 15 + 4 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)