Bekerja dengan BLOB dan PHP

Jikalau anda memutuskan untuk menggunakan tipe data BLOB di database untuk menyimpan file binary anda, maka dibawah ini adalah beberapa hal yang harus anda perhatikan pada saat bekerja dengan tipe data BLOB dan PHP

  Jikalau anda memutuskan untuk menggunakan tipe data BLOB di database untuk menyimpan file binary anda, maka dibawah ini adalah beberapa hal yang harus anda perhatikan pada saat bekerja dengan tipe data BLOB dan PHP :

  1. Submit file binary dengan HTML File :
    • Pastikan anda menggunakan parameter enctype di dalam form submit. Parameter ini dipergunakan untuk mengirimkan file binary anda.
      
      <form action='add_blob.php' method='post' enctype='multipart/form-data'>
          <input id='userfile' type='file' name='userfile' value='' />
      </form>
      
      
  2. Menangkap file binary
    • File Binary yang telah di submit, akan diterima oleh PHP dalam array $_FILES[“userfile”]
    • Isi dari variabel $_FILES[“userfile”] adalah sebagai berikut :
      
      $_FILES['userfile']['tmp_name'] = File binary
      $_FILES['userfile']['name'] = Nama file binary
      $_FILES['userfile']['type'] = Tipe ekstensi file
      $_FILES['userfile']['size'] = ukuran file dalam byte
      
      
    • Untuk mendapatkan lebar dan tinggi dari image gunakan perintah berikut ini :
      
      list ($file_width, $file_height, $type, $attr) = getimagesize($_FILES['userfile']['tmp_name']);
      
      
  3. Untuk menyimpan file binary ke database dengan kohana, php framework.
    • Disini kita menggunakan function fopen dan filesize dari php.
      
      $image = ORM::factory('table_image');
      $image->file_content = fread (fopen ($_FILES['userfile']['tmp_name'], 'r'),
      filesize ($_FILES['userfile']['tmp_name']));
      $image->last_update = new DATE();
      $image->save();
      
      
  4. Untuk membaca file dari BLOB dan menampilkannya ke browser terdapat 2 cara :
    • Tanpa Kompresi, file langsung dibaca dari database dan dikirim ke browser.
      
      $result = ORM::factory('table_image')->find($id);
      if ($result->id)
      {  header ('Content-type: '.$result->file_type);
         echo $result->file_content;
      };
      
      
    • Dengan Kompresi, file dibaca dari database dan di quality di turunkan ke 75%.
      
      $result = ORM::factory('table_image')->find($id);
      if ($result->id)
      {  header ('Content-type: '.$result->file_type);
         echo imagejpeg(imagecreatefromstring($result->file_content), '', 75);
      };
      
      

Demikanlah tutorial cara menggunakan tipe data BLOB dengan PHP.
Semoga bermanfaat.