Aplikasi upload gambar dengan PHP dan MySQL

Kalau kemarin saya posting tentang aplikasi CRUD di PHP, kali ini saya akan aplikasi upload gambar di php dan mysql. Bedanya apa sih sama yang CRUD kemarin.


Aplikasi upload gambar sesungguhnya hampir sama dengan aplikasi CRUD data yang berupa text, namun ada beberapa fungsi tertentu yang harus kita tambah untuk membuat aplikasi upload.

Selain untuk upload gambar, aplikasi ini juga bisa digunakan untuk mengapload file berupa zip, mp3, maupun video



Untuk membuat form uploadnya kita harus mengganti form aksinya yang tadinya seperti ini

<form action="act_berita.php?act=tambah" method="post">

menjadi seperti ini

<form action="act_upload.php?act=tambah" method="post" enctype="multipart/form-data">

Bedanya adalah tambahan

enctype="multipart/form-data"

Sintax diatas maksudnya adalah memberikan informasi ke server bahwa data yang diupload adalah berupa data non-text.

Sintax ini mutlak harus ada setiap kali kita membuat aplikasi upload file. 

Selanjutnya pada file aksinya kita tambahkan perintah

move_uploaded_file($tmp_file2, 'images/' . $_FILES[gambar][name])

Sintax diatas digunakan untuk mebuat aksi upload, $tmp_file2   merupakan file temporary data yang akan diupload, images/ adalah direktori dimana kita akan mengpload file, dan $_FILES[gambar][nama] adalah nama gambar yang nantinya akan masuk kedalam database


Itu beberapa teori upload file yang harus kalian ketahui. Sekarang mari ikuti langkah-langkah pembuatan aplikasinya.


Langkah 1 :
Buatlah direktori file seperti berikut


aplikasi_upload_gambar

  • images
  • gambar.php
  • act_upload.php
  • koneksi.php


Langkah 2 :
Buatlah file gambar.php, act_upload.php, dan koneksi.php dibawah ini.

Simpan di folder aplikasi_upload_gambar

File gambar.php
<?php
include 'koneksi.php';
$act = $_GET[act];
if ($act == form_tambah) {
?>
    <form action="act_upload.php?act=tambah" method="post" enctype="multipart/form-data">
        <table>
            <tr>
                <td>Nama</td><td></td>
                <td>
                    <input type="text" name="nama" size="40px"/>
                </td>
            </tr>
            <tr>
                <td>Gambar</td><td></td>
                <td>
                    <input type="file" name="gambar">
                </td>
            </tr>
        </table>
        <input type="submit" value="tambah" />
    </form>
<?php
} else if ($act == form_edit) {
    $q_upload = mysql_query("select * from upload where id='$_GET[id]'");
    $r = mysql_fetch_array($q_upload);
?>
    <form action="act_upload.php?act=update" method="post" enctype="multipart/form-data">
        <label>Nama</label><input type="text"name="nama" value="<?php echo $r[nama]; ?>" size="40px"><br/>

    <?php if ($r[gambar] != '') {
    ?>
        <img src="<?php echo 'images/' . $r[gambar]; ?>"  alt="<?php echo $r[gambar]; ?>"width="40px">
    <?php
    } else {
        echo "No";
    }
    ?>
    <input type="file" name="gambar">
    <input type="hidden" name="id" value="<?php echo $r[id]; ?>">
    <input type="submit" value="Update">
</form>
<?php
} else {
?>
<a href="gambar.php?act=form_tambah"><button>Tambah upload</button></a><br/><br/>
    <table cellpadding="2px" cellspacing="4px">
        <tr bgcolor="#d3dce3" class="head">
            <td>No</td>
            <td>Nama</td>
            <td>Gambar</td>
            <td></td>
        </tr>
    <?php
    $n = 1;
    $q = mysql_query("select * from upload") or die(mysql_error());
    while ($r = mysql_fetch_array($q)) {
    ?>
        <tr onmouseout="this.bgColor='#e5e5e5'" onmouseover="this.bgColor='#e8edff'" bgcolor="#e5e5e5">
            <td><?php echo $n; ?></td>
            <td><?php echo $r[nama]; ?></td>
            <td>
            <?php
            if ($r[gambar] != '') {
            ?>
                <img src="<?php echo 'images/' . $r[gambar]; ?>"  alt="<?php echo $r[gambar]; ?>"width="25px" height="20px">
            <?php
            } else {
                echo "No";
            }
            ?>
        </td>
        <td>
            <a href="gambar.php?act=form_edit&id=<?php echo $r[id]; ?>">Edit</a>
            <a onclick="return confirm('yakin dihapus');" href="act_upload.php?act=delete&id=<?php echo $r[id]; ?>">Delete</a>
        </td>

    </tr>
    <?php
            $n++;
        }
    }
    ?>
</table>

File act_upload.php
<?php
include 'koneksi.php';
$act = $_GET[act];
/*
* Aksi tambah
*/
if ($act == tambah) {
    $tmp_file = $_FILES[gambar][tmp_name];
    $size = $_FILES[gambar][size];
    $file = $_FILES[gambar][name];
 /*
 * Aksi tambah jika tidak mengapload gambar
 */
    if (!empty($tmp_file)) {
 /*
 * 100000 sama artinya dengan 1000000 byte atau 100 kilo byte
 */
        if ($size < 100000) {
            if (move_uploaded_file($tmp_file, 'images/' . $_FILES[gambar][name])) {


                $q = mysql_query("insert into upload(nama,gambar)
            values ('$_POST[nama]','$file')") or die(mysql_error());
                if ($q) {
                    refresh('0', 'gambar.php');
                } else {
                    echo 'gagal';
                }
            }
        } else {
            echo'Besar gambar max 100 Kb';
            refresh('1', 'gambar.php');
        }
    } else if (empty($tmp_file)) {
        $no_gbr = mysql_query("insert into upload(nama)
            values ('$_POST[nama]')") or die(mysql_error());
        if ($no_gbr) {
            refresh('0', 'gambar.php');
        }
    } else {
        echo"gagal upload";
    }
} else if ($act == update) {
    $tmp_file2 = $_FILES[gambar][tmp_name];
    $size2 = $_FILES[gambar][size];
    $file2 = $_FILES[gambar][name];
    if (empty($tmp_file2)) {
        $q_non = mysql_query("update upload set nama='$_POST[nama]' where id='$_POST[id]'");
        if ($q_non) {
            refresh('0', 'gambar.php');
        }
    } else {

        if ($size2 < 200000) {

            $r = mysql_fetch_array(mysql_query("select * from upload where id='$_GET[id]'"));

            if (move_uploaded_file($tmp_file2, 'images/' . $_FILES[gambar][name])) {
                unlink("images/" . $r[gambar]);
                $q= mysql_query("update upload set nama='$_POST[nama]',gambar='$file2' where id='$_POST[id]'");
        if ($q) {
                    refresh('0', 'gambar.php');
                }
            }
        } else {
            echo'Besar gbr max 100kb';
            refresh('1', 'gambar.php');
        }
    }
} else if ($act == delete) {
    $r = mysql_fetch_array(mysql_query("select * from upload where id='$_GET[id]'"));
    if ($r[gambar] != '') {
        $q1 = mysql_query("delete from upload where id='$_GET[id]'");
        unlink("images/" . $r[gambar]);
        if ($q1) {
            refresh('0', 'gambar.php');
        }
    } else {
        $q2 = mysql_query("delete from upload where id='$_GET[id]'");
        if ($q2) {
            refresh('0', 'gambar.php');
        }
    }
}
?>
File koneksi.php
<?php
/*
 *
 * Koneksi ke database
 *
 */
$db_server = 'localhost';
$db_user = 'root';
$db_password = '';      //jika tidak ada kosongkan saja
$db_name = 'blog';    //sesuaiakan dengan database yg dibuat

/*
 * koneksi ke server
 *
 */
mysql_connect($db_server, $db_user, $db_password);
/*
 * memilih database
 *
 */
mysql_select_db($db_name);

/*
 * Untuk pindah halaman jika aksi berhasil
 *
 */

function refresh($delay, $url) {
    echo"<meta http-equiv='refresh' content='$delay;url=$url'>";
}
?>

Download Source Code

Selamat mencoba, semoga bermanfat

Penulis  Fuad Indra Setiawan

0 comments:

Posting Komentar