Menghapus File Gambar Pada Database dan Folder Website

Teknik yang Saya gunakan untuk menyimpan sebuah gambar kedalam database adalah dengan menyimpan nama gambar didalam database sedangkan gambarnya disimpan di dalam sebuah direktori tertentu pada website. Prosesnya adalah ketika user upload sebuah gambar/foto menggunakan sebuah form upload, gambar akan direname/diberi nama, kemudian nama gambar disimpan didatabse lalu sesudah itu disimpan ke direktori website, mungkin tekniknya akan berbeda – beda tapi umumnya file gambar tidak akan disimpan secara langsung di dalam database, yang berada didatabase hanyalah file berupa nama gambar/foto. 


Oleh karena itu bila kita hanya menggunakan query untuk delete data saja seperti "delete from nama_tabel where='id'"; hanya akan menghapus nama gambar yang tersimpan didatabase sedangkan file aslinya tidak akan dihapus, dengan demikian kita juga memerlukan perintah tambahan untuk mendelete sebuah file didalam halaman website yaitu adalah dengan menggunakan perintah unlink(namafile). Nanti prosesnya adalah data di pecah dengan $variabel=mysql_fetch_array() lalu nanti diikuti dengan perintah $variabel[nama_kolom_gambar].Sehingga nanti perintahnya adalah unlink(“$variabel[gambar]”);

Bila data yang tersimpan didatabase hanya berupa nama gambar/fotonya tanpa dilengkapi dengan path(tempat menyimpan gambar) maka kita perlu tambahkan path gambar didalam perintah unlink. Contoh

unlink(“namafolder/$variabel[gambar]”);

gambar tersimpan dengan alamat/path gambar
Disimpan bersampa path/lokasi gambar

hanya nama gambar/foto yang disimpan dalam database
Disiimpan hanya nama gambarnya saja

Menghapus File Gambar Pada Database dan Folder Website

Supaya lebih mudah, saya akan memberikan sebuah contoh/studi kasus. Saya memliki sebuah File PHP yang berisi perintah untuk mendelete sebuah data. Kemudian database untuk fotonya menampung nama gambar yang tersimpan (tidak disertakan pathnya). Sturuktur database mengacu ke gambar dua diatas.

Script awal yang Saya gunakan untuk mendelete data gambar dalam database adalah seperti berikut

<?php
include('system/conf/koneksi.php');
$edit=$_GET['del'];
$sql=sprintf("delete from data_karyawan where id=%d",$edit);
$del=@mysql_query($sql,$koneksi);
if($del){
echo "<script>alert('Data berhasil dihapus!')</script>";   
echo "<script>window.open('index.php?page=lihat','_self')</script>";
}else{
 echo "Perubahan data gagal=<br/>".mysql_error();
}


?>


Perintah diatas hanya akan menghapus nama file gambar pada database, sedangkan bila gambar/foto yang tersimpan tidak akan terhapus didalam direktori gambar website. Bila menginginkan file gambar yang bersangkutan juga ikut terhapus, maka saya menambahkan parameter unlink didalam file diatas.

Menggunakan Perintah UNLINK untuk menghapus gambar/foto yang tersimpan pada direktori website


<?php

include('system/conf/koneksi.php');
$edit=$_GET['del'];
$sql=sprintf("delete from data_karyawan where id=%d",$edit);
$sql2="SELECT * FROM data_karyawan where id='$edit'"; //query dua
$hpsgbr=@mysql_query($sql2); //jalankan query
$jalankan=mysql_fetch_array($hpsgbr); //pecah dtanya
unlink("images/$jalankan[foto]"); //lalu hapus gambarnya, images merupakan letak direktori sedangkan $jalankan[foto] merupakan nama file gambar yang bersangkutan
$del=@mysql_query($sql,$koneksi);
if($del){
echo "<script>alert('Data berhasil dihapus!')</script>";   
echo "<script>window.open('index.php?page=lihat','_self')</script>";
}else{
 echo "Perubahan data gagal=<br/>".mysql_error();
}


?>


Apa yang saya jelaskan diatas hanya contoh saja, karena prosesnya mungkin ada yang tidak sesimpel itu, karena ada juga yang prosesnya adalah sebelum gambar dihapus file gambar dicek dulu apakah masih ada atau tidak. Untuk contoh lebih jelasnya bisa Anda download fcontoh sourcenya pada artikel Aplikasi Manajemen Karyawan 




13 Responses to "Menghapus File Gambar Pada Database dan Folder Website"

  1. ow, kirain menghapus gambar di website itu tinggal hapus saja gambar yg telah diupload, tapi masih pakai perintah2 tertentu juga to.. hmm,, agak ribet ya mas. hehehe

    ReplyDelete
  2. Diluar Topik Kang...

    Kira-kira antara bootstrap dan codeigniter, lebih powerfull mana ya?

    ReplyDelete
    Replies
    1. Bootstrap itu bisa dibilang framork juga sih yah,,, tapi itu keknya lebih ke front end,,, (tampilan) kalau CodeIgniter itu framework untuk disisi servernya,, pake PHP juga,,, jadi ndak bisa dibandingkan,,, karena keduanya itu beda,,, namun bisa disatukan kedalam satu kerangka kerja,,, untuk bangun aplikasi/web yang powerfull...

      Delete
  3. Sepertinya Teknik yang digunakan sama dengan teknik yang saya gunakan juga dalam mengelola gambar yang ada di website yang saya kelola. Tutorialnya Mantap nich Mas...

    ReplyDelete
  4. Ijin nyimak dulu mas soalnya kalo urusan beginian saya kurang paham

    ReplyDelete
  5. kok saya bacanya rada rieut ya kang.. kalo gambar di web saya menghilang kenapa ya kang..? padahal ga pernah hapus lho..

    ReplyDelete
  6. Sangat jelas cara menghapus file gambar pada databse nya apalagi disertai dengan video makin ngerti dah pengunjung.

    ReplyDelete
  7. Gimana ya caranya menghapus file gambar di folder sekali banyak, misalkan saya akan menghapus yang tgl_entri di databasenya kurang dari 2017 (tgl_entri<='31-12-2017'), kalau pakai query, maka ditabelnya kehapus namun filenya gak kehapus...

    ReplyDelete
    Replies
    1. Saya mikirnya, proses kodenya mungkin harus dibalik, maksudnya kita unlink dulu filenya baru delete di tabel

      Delete
  8. bang ini saya mau tanya saya kan nyoba ngikutin cara bikin crud upload gambar sampe abis dari https://www.root93.co.id/2019/04/upload-tampil-dan-delete-gambar-di-php-part-2.html?m=1 dan saya mau nyoba buat masukin script hapus foto dalam folder juga kira kira harus dimasukin dimananya ya ?
    tolong dijawab ya kak
    email saya : ahmadtsani145@gmail.com

    ReplyDelete
  9. sebenarnya ada banyak teknisnya mas, mas bisa eksekusi query hapus gambarnya dulu baru eksekusi unlink (pathgambar/file)

    ReplyDelete

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin