BLOB adalah suatu cara untuk menyimpan file-file media kayak jpg, mp3, flv, dsb ke dalam database. Bahkan bisa juga untuk type file lain semisal .htm. Database yang biasanya kita isi dengan teks atau angka, kini bisa kita masukkan file-file media.
Pada intinya, saat kita menyimpan file-file media ke dalam database, tahapan-tahapan yang akan kita lewati adalah :
- Membuka/membongkar file media tersebut
- Membaca isi dari file tersebut, maksudnya adalah membaca kode binary yang menyusun file tersebut
- Menyimpan kode binary tersebut ke database, jadi yang disimpan di database sebenarnya adalah kode-kode binarynya, bukan filenya
- Menutup kembali file tersebut
Berikut adalah langkah-langkah dalam pembutan blob :
- Buka phpmyadmin, dan buat database baru,, misalnya database ‘belajar’. Buat table dengan nama ‘file’ dengan kolom-kolom :
- id (type : int)
- file_content (blob): untuk menyimpan kode binarynya
- file_name (varchar) : menyimpan nama file
- file_type (varchar) : menyimpan tipe file
- file_size (int) : menyimpan ukuran file
- Buat file blob.php
01
// connect to database
02
03
@mysql_connect(
"localhost"
,
"root"
,
""
) OR
die
(
"NOT CONNECT DATABASE"
);
04
@mysql_select_db(
"belajar"
) OR
die
(
"CONNECTED, BUT NO DATABASE"
);
05
06
//membuat tampilan. Tampilan berupa upload file. File yang kita upload akan disimpan ke database
07
08
echo
"<form method=\"post\" name=\"form1\" enctype=\"multipart/form-data\">"
;
09
echo
" <input name=\"file\" type=\"file\">"
;
10
echo
" <input name=\"submit\" type=\"submit\" value=\"Upload\">"
;
11
echo
"</form>"
;
12
13
if
(
$_POST
[submit]){
14
15
//variabel-variabel yang digunakan untuk menyimpan data-data mengenai file ke database
16
$file_name
=
$_FILES
[
'file'
][
'name'
];
17
$tmp_name
=
$_FILES
[
'file'
][
'tmp_name'
];
18
$file_size
=
$_FILES
[
'file'
][
'size'
];
19
$file_type
=
$_FILES
[
'file'
][
'type'
];
20
21
// membuka atau membongkar file
22
$fp
=
fopen
(
$tmp_name
,
'r'
);
23
// membaca isi dari file, membaca kode binarynya
24
$file_content
=
fread
(
$fp
,
$file_size
)
or
die
(
"Error: cannot read file"
);
25
// menyimpan kode binarynya ke variabel, ini yang nanti akan kita simpan di database
26
$file_content
= mysql_real_escape_string(
$file_content
)
or
die
(
"Error: cannot read file"
);
27
//menutup kembali filenya
28
fclose(
$fp
);
29
30
// insert ke database
31
$qu
= "INSERT INTO `file`
32
(`file_content`,`file_name`,`file_type`,`file_size`)
33
VALUES
34
(
'$file_content'
,
'$file_name'
,
'$file_type'
,
'$file_size'
)";
35
$re
= mysql_query(
$qu
)
or
die
(
"Sorry Cant insert db!"
);
36
echo
$file_name
.
" inserted succesfully to database"
;
37
38
// kode untuk menampilkan gambarnya.. lihat source code dari tampilkan.php
39
echo
" <img src=\"tampilkan.php\"> "
;
40
}
- Sedangkan source untuk tampilkan.php
01
// Connect ke database
02
@mysql_connect(
"localhost"
,
"root"
,
""
) OR
die
(
"NOT CONNECT DATABASE"
);
03
@mysql_select_db(
"belajar"
) OR
die
(
"CONNECTED, BUT NO DATABASE"
);
04
05
// Query untuk mengambil data ke database untuk ditampilkan. Untuk contoh, kita akan ambil gambar pertama dari database kita,, ditandai dengan id=1
06
$query
=
"SELECT file_content, file_name, file_type, file_size FROM file WHERE id=1"
;
07
$result
= mysql_query(
$query
);
08
09
// hasil dari query tadi kita simpan ke variabel
10
$content
= mysql_result(
$result
,0,
"file_content"
);
11
$name
= mysql_result(
$result
,0,
"file_name"
);
12
$type
= mysql_result(
$result
,0,
"file_type"
);
13
$size
= mysql_result(
$result
,0,
"file_size"
);
14
15
// header untuk memberi tahu browser jenis data yang akan ditampilkan
16
header(
"Content-type: $type"
);
17
18
// data gambar/foto dikirim ke browser
19
echo
$content
Kalo udah, tinggal arahkan browsermu ke file blob.php, http://localhost/aaa/blob.php. Disini saya menyimpan file blob.php dan tampilkan.php di folder xampp/htdocs/aaa. Browse gambar yang anda sukai dan tekan tombol upload
Materi referensi
Tidak ada komentar:
Posting Komentar