BLOB di PHP

Sudah kira-kira dua minggu ini saya dan temen-temen seperjuangan yang tergabung dalam Tim Developer ICT SD Muhammadiyah 4 Surabaya memberikan training PHP. Salah satu materi yang saya sempat saya bawakan di pelatihan itu adalah mengenai BLOB di PHP.. Bagi yang belum tau apa itu BLOB, simak pengertian BLOB yang saya ambil dari http://wikipedia.org

A binary large object, also known as a blob, is a collection of binary data stored as a single entity in a database management system. Blobs are typically images, audio or other multimediablob. Database support for blobs is not universal. objects, though sometimes binary executable code is stored as a

Intinya, 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 :

  1. Membuka/membongkar file media tersebut
  2. Membaca isi dari file tersebut, maksudnya adalah membaca kode binary yang menyusun file tersebut
  3. Menyimpan kode binary tersebut ke database, jadi yang disimpan di database sebenarnya adalah kode-kode binarynya, bukan filenya
  4. Menutup kembali file tersebut

Berikut adalah langkah-langkah dalam pembutan blob :

  1. 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

    tabel

  2. Buat file blob.php
    
    // connect to database
    
    @mysql_connect("localhost", "root", "") OR die ("NOT CONNECT DATABASE");
    @mysql_select_db("belajar") OR die ("CONNECTED, BUT NO DATABASE");
    
    //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 ("Sorry Cant insert db!");
     echo $file_name." inserted succesfully to database";
    
    // kode untuk menampilkan gambarnya.. lihat source code dari tampilkan.php
      echo " <img src=\"tampilkan.php\"> ";
    }
    
    
  3. Sedangkan source untuk tampilkan.php
    // Connect ke database
    @mysql_connect("localhost", "root", "") OR die ("NOT CONNECT DATABASE");
    @mysql_select_db("belajar") OR die ("CONNECTED, BUT NO DATABASE");
    
    // Query untuk mengambil data ke database untuk ditampilkan. Untuk contoh, kita akan ambil gambar pertama dari database kita,, ditandai dengan id=1
    $query = "SELECT file_content, file_name, file_type, file_size FROM file WHERE id=1";
    $result = mysql_query($query);
    
    // hasil dari query tadi kita simpan ke variabel
    $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 
  1. 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

hasil

Sumber :

13 Responses to BLOB di PHP

  1. Gatot Wibowo says:

    Matur nuwun atas pendampingannya…😀

  2. cha ajah says:

    gimana cara nya membuat kode php yang misalnya kita menginputkan data bukan dari phpmyadmin kemudian secara otomatis dia langsung mengsave ke database.?
    gimana caranya menampilkan hasil inputan tdi ke html lalu secara otomatis dia akan menghitung nilai yang kita inputkan…????

  3. entung says:

    @Pak Gatot : Hahaha.. sama2 pak.. mohon maaf atas segala kekurangan kami waktu ngasih training.. hehe

    @cha : Oke,, kalo ada kesempatan, saya mau bikin tutorialnya.. ditunggu ya..😀

  4. ada says:

    mas di upload sih berhasil tapi kok gambarnya ga keluar

  5. Fanani says:

    makasi banyak ilmunya sangat bermanfaat..!!
    ini saya mau tanya!! kalau bikin delate image lewat brosernya gimana..???

  6. arya says:

    mas saya udh coba script dan semua penjelasan dari sampeyan, yang saya bingung, semuanya gatot, secara saya pakai Xampp Lite, dari Port : 112, dan dsl portnya juga saya customize sendiri!!!

    mohon petunjuknya.. saya benar2 sedang ada masalah soal image ini..

    thanks, maaf sebelumnya jika ada salah2 kata..

  7. hamid says:

    mas kok gambarnya g bisa full ya…
    di firefox nya scale 78%..
    apa tuch mas?

    thnks

  8. Obay Tea says:

    Matur nuhun share ilmunya …

  9. Eko Setiawan says:

    thanks untuk ilmunya….

  10. fg says:

    GIMANA CARA SELECT/INSERT/UPDATE/DELETE file jpg/ bmp/ gif YANG ADA DI DATABASE MYSQL? THANKS?

    </HTML

  11. entung says:

    @Eko Setiawan : sama-sama mas, semoga bermanfaat
    @fg : bisa dieksplore dari kode yang saya paparkan diatas pak,
    untuk delete : tinggal di delete aja, sama kayak delete record biasa
    untuk select : tinggal select🙂
    insert : sama kayak diatas
    update : untuk update, bisa dengan sedikit cara yang tricky, misal record yang lama dihapus dulu, kemudian insert yang baru🙂

  12. Gak Sengaja mengklik ternyata ada sesuatu yang kubutuhkan.
    Terima Kasih mas.

  13. Rizli says:

    Mas aq kan buat program upload berkas, pakai tipe blob…, trus aq mau menampilkan file pdf yang aq upload . . aq da coba2 tp hsil pdfnya yang aq dowload kosong . . saya minta tolong ya mas kasih tau solusinya

    terimakasih…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: