Rabu, 11 Maret 2020

Menyimpan File Gambar Ke Database MySql Tipe Data Blob dan Menampilkannya Kembali ~Tutorial Gambas


Menyimpan file disini sebenarnya bisa berupa berbagai macam file seperti gambar (jpg/jpeg, bmp, gif, dll), pdf, doc, dll. Ada 3 cara yang umum dilakukan oleh pemrogam untuk menyimpan data file ke dalam database, yakni:

Cara 1 : Hanya menyimpan data lokasi/path file.
Cara ini sangat mudah dan hemat memori pada database. Kelemahannya adalah proses banckup memerlukan usaha yang tidak sederhana dalam mengatur/memrogammnya.

Cara 2 : Mengenkrip/encode data file (berdasarkan data biner).
Cara ini biasanya dilakukan oleh pemrogam yang belum tahu cara menyimpan data file (biner) sehingga mengakali dengan cara merubah data biner ke format yang mudah dimasukkan kedalam database (metode encrypt). Biasanya menggunakan enkrip Base64. Cara ini adalah yang paling lambat daripada dua cara disini dalam proses penyimpanan dan menampilkannya kembali.

Cara 3 : Menyimpan file berdasarkan data binarinya.
Cara ini yang biasanya banyak dicari oleh pemrogram pada bahasa program yang dikuasainya. Metode akan lebih lambat dari cara 1 dan lebih cepat dari cara 2. Cara ke 3 inilah akan dibahas pada tutorial ini.

Misal telah dibuat database.
Nama database = tesmasukkanfile
Nama Table = tesblob (hanya punya 1 kolom)
Nama Kolom = gambar (tipe data MEDIUMBLOB)

Contoh modul untuk koneksi ke database dengan nana “Dataku”.

' Gambas module file

Public db As New Connection


Public Function Koneksi() As Boolean

   With db
     .Close
     .Type = "mysql"
     .Host = "localhost"
     .Login = "root"
     .Password = "passwordku"
     .Name = "tesmasukkanfile"
     .Open
   End With
   Return True
   Catch
     Message.Warning("tidak terhubung kedatabase", "Ok")
   Return False

End


Memasukkan file gambar (jpg) ke database MySql

' Gambas module file

Public Sub Main()

   Dim DataGambar As String
   Dataku.Koneksi
   DataGambar = File.Load(System.User.Home &/ "Coba.png")
   ‘Sama dengan /home/pengguna/Coba.png. Boleh juga ambil dari direktori lain
   Dataku.db.Exec("INSERT INTO tesblob VALUES(&1)", DataGambar)

End


Mengembalikan/menampilkan gambar dari database Mysql

' Gambas module file

Public Sub Main()

   Dim Rs As Result
   Dataku.Koneksi
   Rs = Dataku.db.Exec("SELECT gambar FROM tesblob LIMIT 1")
   ‘Data yang diambil diletakkan di /tmp. Boleh juga diletakkan di direktori/folder lain
   File.Save("/tmp/datayangdiambil.png", Rs!gambar)
   ‘Setelah diletakkan di /tmp, kemudian ditampilkan
   Desktop.Open("/tmp/datayangdiambil.png", True)
   ‘Menghapus file data gambar tersebut
   Kill "/tmp/datayangdiambil.png"

End


Mudah-mudahan dapat dipahami.

Tidak ada komentar:

Posting Komentar