Pendahuan
Ada dua teknik yang digunakan dalam mengupload file khususnya file gambar yaitu :
- Cara pertama : Mengupload file gambar dan menyimpan file gambar tersebut kedalam sebuah folder image, sedangkan nama atau alamat gambar tersebut disimpan kedalam sebuah database gambar.
- Cara Kedua : Mengupload dan menyimpan gambar tersebut kedalam sebuah database dengan tipe data BLOB
Cara Kedua
Pada artikel ini saya akan menjelaskan cara yang kedua yaitu dengan cara menyimpan file gambar kedalam sebuah database. kita membutuhkan sebuah file dengan tipedata BLOB atau Binary Large OBject. untuk itu kita membuat sebuah tabel “gambar” di database “test” misalnya :
CREATE TABLE gambar (
id INT NOT NULL AUTO_INCREMENT,
file_content BLOB,
file_name varchar(256) NOT NULL,
file_type varchar(256) NOT NULL,
file_size int(50) NOT NULL,
PRIMARY KEY(id)
) ;
Sehingga jika sudah ada datanya akan tampil seperti dibawah ini. (saya menggunakan PHPMyAdmin)
Adapun file-file yang dibutuhkan adalah :
- koneksi.php untuk koneksi ke database
- index.php untuk halaman utama dan form upload gambar
- upload.php untuk memproses input gambar dan menyimpan ke database
- view.php untuk menampilkan data sebuah file gambar yang tersimpan
- view2.php untuk menampilkan salah satu gambar yang dipilih
Potongan Program
<?php
//KONEKSI DATABASE//
include “koneksi.php”;//AMBIL DARI FORM INPUT//
$file_name = $_FILES['file']['name'];
$tmp_name = $_FILES['file']['tmp_name']; //nama local temp file di server
$file_size = $_FILES['file']['size'];
$file_type = $_FILES['file']['type']; //tipe filenya (langsung detect MIMEnya)//OPERASI FILE//
$fp = fopen($tmp_name, ‘r’); // open file (read-only, binary)
$file = fread($fp, $file_size) or die(“Tidak dapat membaca source file”); // read file
$file_content = mysql_real_escape_string($file) or die(“Tidak dapat membaca source file”); // parse image ke string
fclose($fp);//QUERY DATABASE//
$qu = “INSERT INTO gambar(file_content,file_name,file_type,file_size) VALUES(‘$file_content’,'$file_name’,'$file_type’,'$file_size’)”;
$re = mysql_query($qu);//CEK HASIL QUERY//
if($re){
echo $file_name.” berhasil disimpan ke database”;
?><h3 align=”center”><blink><a href=”tampil.php”>Lihat Gambar</a></blink></h3><?php
}else{
echo mysql_error();
}
?>
Setelah gambar di upload dan dijadikan file temporial di server, gambar tersebut dibaca dan diubah dalam bentuk biner. setelah itu nilainya di ubah lagi menjadi serangkaian nilai string untuk selanjutnya disimpan dalam sebuah field dengan tipedata Blob.
Menampilkan Gambar
Setelah saya coba ternyata gambar yang ditampilkan dalam satu halaman hanya satu. berbeda dengan teknik pertama yang memungkinkan gambar bisa ditampilkan banyak dalam satu halaman karena hanya memanggil alamat gambarnya saja. setelah saya perhatikan ini ada masalah pada syntax header(“Content-type: $data[file_type]“); dimana dalam sebuah halaman hanya diperbolehkan satu header untuk satu gambar.
Download
http://www.4shared.com/file/iCM8bb8g/gambar-blob.html
Sekian artikel dari saya semoga bermanfaat untuk teman-teman dan anda semua…aamiin
Depok, 13-06-2011
noname
Filed under: Belajar PHP Tagged: | BLOB, data, database, dengan, file, gambar, kedalam, Memasukan, tipe











Sonora Jakarta


















kang agus, saya mau tanya nih. kang agus pernah tidak membuat web / aplikasi sistem pakar dengan php dan my sql???? kalo pernah tolong di share ya kang. matur nuhun.
kalo pake oracle form gmana ya?
http://en.wordpress.com/tag/belajar-oracle/
mas agus,,kalau yang tehnik pertama gmana caranya y,,terima kasih ^.^
http://ri32.wordpress.com/2010/06/27/membuat-aplikasi-upload-dan-download-file-dengan-php/
http://ri32.wordpress.com/2009/07/22/gagal-upload-gambar-di-php/
Pak, kalo untuk upload file .doc gimana caranya? apakah sama dengan upload foto? tipe datanya utk di databasenya apa?
Pak Agus pernah gak buat proyek web karakter avatar seperti yang biasa di game itu..klo ada mohon di share ya Pak..Makasih sebelumnya.
knp di google tak ada 1pun yg share cara 1 ni bt yg nuwbie lg kelabakn mbok kalau berkenan di share gitu looooh