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..
May 18, 2010
|
Posted by naufal
Categories:
Tags:
nice.. thx pal..
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”);
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 ” “;}
?>
error keluar pas upload gambar..
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..
mungkin ini bisa membantu
http://www.satudetik.com/wp-content/uploads/2010/06/coba1.zip
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
xjadi…keluar ini
Parse error: parse error in C:\xampp\htdocs\gambar.php on line 3
Postingannya singkat tapi cukup bermanfaat.
Thanks