Tutorial Upload Gambar dengan PHP dan MySQL

0
219

Tutorial kali ini akan membuat program upload dengan PHP dan MYSQL. Saya menggunakan tipe data BLOB untuk menyimpan file gambar yang nanti akan di upload.

Step 1 – MEMBUAT DATABASE DAN TABEL

Seperti tutorial PHP dan MYSQL yang lain kita harus mengawali nya dengan membuat database dan tabel. Saya akan membuat database dengan nama MYDB dan tabel dengan nama IMAGE.

Tuliskan sintaks SQL berikut:

CREATE DATABASE MYDB;

 

Lalu aktifkan database MYDB

USE MYDB;

 

Selanjutnya saya membuat tabel IMAGE.

CREATE TABLE IMAGE (

id int not null auto_increment primary key,

nama varchar(200),

gambar longblob

);

 

Step 2 – MEMBANGUN KONEKSI

Selanjutnya kita membuat koneksi dengan PHP ke server MySQL.

<?php
$host = "localhost";
$username = "root";
$password = "";
$dbname = "mydb";

$conn = mysqli_connect($host, $username, $password, $dbname);

if (mysqli_connect_errno()) {
  echo "gagal";
exit();
}
?>

Simpan dengan nama file koneksi.php.

Step 3 – MEMBUAT HALAMAN UPLOAD

Disini kita membuat form dan input type file untuk mengupload gambarnya.

Tuliskan sintaks seperti berikut dan simpan dengan nama file upload.php

<!DOCTYPE html>
<html>
<head>
  <title>Upload</title>
</head>
<body>
  <form action="do_upload.php" enctype="multipart/form-data" method="post">
    <table>
      <tr>
        <td>Nama</td>
        <td><input type="textfield" name="nama"></td>
      </tr>
      <tr>
        <td>Pilih Gambar</td>
        <td><input type="hidden" name="MAX_FILE_SIZE" value="500000">
          <input type="file" name="gambar"></td>
      </tr>
      <tr>
        <td>&nbsp</td>
        <td><input type="submit" name="simpan" value="Simpan"></td>
      </tr>
    </table>
  </form>
</body>
</html>

 

Step 4 – MEMBUAT PROSES UPLOAD

Step selanjutnya adalah membuat file proses untuk upload dengan sintaks PHP. Tulis sintaks PHP berikut.

<?php
if (isset($_POST['simpan'])) {
  $nama = $_POST['nama'];

  require 'koneksi.php';

  $tempfile = $_FILES['gambar']['tmp_name'];
  $filename = $_FILES['gambar']['name'];

  $targetdir = getcwd() ."\\". $filename;
  if ($tempfile) {
    copy($tempfile, $targetdir);
  }

  $targetdir = str_replace("\\", "/", $targetdir);


  $sql = "insert into image(nama, gambar) ".
      "values('$nama', ".
      "load_file('$targetdir'))";
  mysqli_query($conn, $sql);
  $num = mysqli_affected_rows($conn);
  if ($num > 0) {
    echo "Data disimpan <a href='showdata.php'>Lihat Data</a>";
  } else {
    echo "gagal";
  }

}
?>

 

Simpan dengan nama file do_upload.php

Step 5 – MENAMPILKAN DATA

Setelah kita telah berhasil mengupload lalu kita buat file untuk menampilkan data tersebut. Tuliskan sintaks PHP berikut.

<!DOCTYPE html>
<html>
<head>
  <title>Show Data</title>
</head>
<body>
<?php
require 'koneksi.php';

$sql = "select id, nama ".
    "from image";
$result = mysqli_query($conn, $sql);
$num = mysqli_num_rows($result);
if ($num > 0) {
  ?>
  <table border="1">
    <tr>
      <th>Id</th>
      <th>Nama</th>
      <th>Gambar</th>
    </tr>
    <?php
    while (list($id, $nama) = mysqli_fetch_array($result)) {
      ?>
      <tr>
        <td valign="top"><?php echo $id; ?></td>
        <td valign="top"><?php echo $nama; ?></td>
        <td><img src="showblob.php?id=<?php echo $id; ?>" style="width: 400px;"></td>
      </tr>
      <?php
    } ?>
  </table>
  <?php
}
?>
</body>
</html>

 

Simpan dengan nama file showdata.php

Step 6 – MENAMPILKAN GAMBAR

Yang kita butuhkan selanjutnya adalah proses untuk menampilkan gambar yang dipanggil melalui file showdata.php.

Tulis sintaks PHP seperti berikut.

<?php 
require 'koneksi.php';

$id = $_GET['id'];

$sql = "select gambar from image ".
    "where id = '$id'";

$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_row($result);
$image =$row[0];
header("Content-type: image/jpeg");
echo $image;
?>

 

Simpan dengan nama file showblob.php.

Nah sekarang anda sudah berhasil upload gambar dengan PHP. Selamat belajar.

Terima Kasih telah membaca.

***PIU***

 

LEAVE A REPLY

Please enter your comment!
Please enter your name here