Tutorial Laravel #31 : Hapus File Dengan Laravel
![](https://www.malasngoding.com/wp-content/uploads/2019/03/Hapus-File-Dengan-Laravel.png)
Hapus File Dengan Laravel – Halo selamat datang kembali di tutorial laravel untuk pemula dari malasngoding.com.
Pada tutorial ini kita masih akan melanjutkan materi pembelajaran kita sebelumnya tentang laravel dasar untuk pemula. pada Tutorial Laravel #30 sebelumnya, kita telah belajar tentang membuat upload file dengan laravel. dan menyimpan data yang diupload ke database lengkap dengan keteranganya.
Maka pada tutorial ini akan dijelaskan tentang cara membuat hapus data yang sudah diupload. bukan hanya menghapus data nya saja, tapi juga menghapus file gambar atau file dokumen nya dari direktori project laravel kita.
Sebelum masuk ke pembahasan tentang cara hapus file dengan laravel, ada baiknya membaca tutorial sebelumnya dulu jika teman-teman belum membacanya.
Agar materi dan penjelasan cara membuat upload dan hapus file dengan laravel ini lebih mudah dimengerti pada saat teman-teman membaca tutorial delete file menggunakan laravel ini.
BACA : Tutorial Membuat Upload File Dengan Laravel
Hapus File Dengan Laravel
Jika teman-teman mengikuti tutorial laravel sebelumnya di malasngoding.com tentang membuat upload file ke database mysql dengan laravel, maka kita sudah punya form penginputan atau upload file, dan kita juga sudah menampilkan data dan gambar yang sudah diupload.
Saya ulas kembali apa saja yang sudah kita miliki sekarang dalam project laravel membuat upload dan hapus file dengan laravel ini.
Table
Table gambar dengan kolum seperti berikut :
- id
- file
- keterangan
- created_at
- updated_at
Baca kembali selengkapnya di tutorial upload file dengan laravel.
Routes => roures/web.php
1 2 |
Route::get('/upload', 'UploadController@upload'); Route::post('/upload/proses', 'UploadController@proses_upload'); |
Controllers => app/Http/Controllers/UploadController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Gambar; class UploadController extends Controller { public function upload(){ $gambar = Gambar::get(); return view('upload',['gambar' => $gambar]); } public function proses_upload(Request $request){ $this->validate($request, [ 'file' => 'required|file|image|mimes:jpeg,png,gif,webp|max:2048', 'keterangan' => 'required', ]); // menyimpan data file yang diupload ke variabel $file $file = $request->file('file'); $nama_file = time()."_".$file->getClientOriginalName(); // isi dengan nama folder tempat kemana file diupload $tujuan_upload = 'data_file'; $file->move($tujuan_upload,$nama_file); Gambar::create([ 'file' => $nama_file, 'keterangan' => $request->keterangan, ]); return redirect()->back(); } } |
View => resources/views/upload.blade.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
<!DOCTYPE html> <html> <head> <title>Tutorial Laravel #31 : Membuat Hapus File Dengan Laravel</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> </head> <body> <div class="row"> <div class="container"> <h2 class="text-center my-5">Tutorial Laravel #31 : Membuat Hapus File Dengan Laravel</h2> <h4><a target="_blank" href="https://www.malasngoding.com/hapus-file-dengan-laravel/">www.malasngoding.com</a></h4> <div class="col-lg-8 mx-auto my-5"> @if(count($errors) > 0) <div class="alert alert-danger"> @foreach ($errors->all() as $error) {{ $error }} <br/> @endforeach </div> @endif <form action="/upload/proses" method="POST" enctype="multipart/form-data"> {{ csrf_field() }} <div class="form-group"> <b>File Gambar</b><br/> <input type="file" name="file"> </div> <div class="form-group"> <b>Keterangan</b> <textarea class="form-control" name="keterangan"></textarea> </div> <input type="submit" value="Upload" class="btn btn-primary"> </form> <h4 class="my-5">Data</h4> <table class="table table-bordered table-striped"> <thead> <tr> <th width="1%">File</th> <th>Keterangan</th> <th width="1%">OPSI</th> </tr> </thead> <tbody> @foreach($gambar as $g) <tr> <td><img width="150px" src="{{ url('/data_file/'.$g->file) }}"></td> <td>{{$g->keterangan}}</td> <td><a class="btn btn-danger" href="/upload/hapus/{{ $g->id }}">HAPUS</a></td> </tr> @endforeach </tbody> </table> </div> </div> </div> </body> </html> |
Model => app/Gambar.php
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Gambar extends Model { protected $table = "gambar"; protected $fillable = ['file','keterangan']; } |
Hasil nya seperti berikut.
![upload dan hapus file dengan laravel](https://www.malasngoding.com/wp-content/uploads/2019/03/upload-dan-hapus-file-dengan-laravel.png)
upload dan hapus file dengan laravel
Hapus File Dengan Laravel
Kita mulai proses penghapusan data dan filenya. perhatikan pada tampilan di atas, pada data yang tampil kita sudah membuat tombol untuk menghapus data dan gambar dengan laravel.
Silahkan perhatikan pada view upload.blade.php.
1 |
<a class="btn btn-danger" href="/upload/hapus/{{ $g->id }}">HAPUS</a> |
Kita sudah membuat link/tombol hapus yang akan mengarahkan halaman ke route /upload/hapus/{id} sambil mengirimkan id yang ingin dihapus data dan file gambarnya.
Maka sekarang kita buat route baru untuk menangani proses penghapusan data.
routes/web.php
1 |
Route::get('/upload/hapus/{id}', 'UploadController@hapus'); |
Sehingga menjadi seperti berikut.
1 2 3 4 5 |
Route::get('/upload', 'UploadController@upload'); Route::post('/upload/proses', 'UploadController@proses_upload'); // hapus file Route::get('/upload/hapus/{id}', 'UploadController@hapus'); |
route /upload/hapus/{id} ini akan memproses method hapus() dalam controller UploadController.php.
Sekarang mari kita buat method hapus() dalam controller UploadController.php.
app/Http/Controllers/UploadController.php
1 2 3 4 5 6 7 8 9 10 |
public function hapus($id){ // hapus file $gambar = Gambar::where('id',$id)->first(); File::delete('data_file/'.$gambar->file); // hapus data Gambar::where('id',$id)->delete(); return redirect()->back(); } |
pada method ini kita menangkap data id yang dikirim melalui url. yaitu id data yang ingin dihapus. kemudian kita ambil datanya dari table gambar. kenapa kita ambil data gambar yang berdasarkan id ini? karena kita butuh nama file gambar yang ada pada record data ini.
BACA : Mengambil Data Dengan Eloquent Laravel
Setelah kita memiliki nama file nya, maka kemudian kita hapus menggunakan fungsi delete() yang berasal dari class File pada laravel.
Ingat !, upload gambar yang sebelumnya kita buat, file gambar nya kita buat dalam folder “data_file” dalam folder “public“. karena segala sesuatu yang berhubungan dengan file di laravel, folder public selalu menjadi prioritas.
Karena kita menggunakan class File, maka kita wajib memanggilnya terlebih dulu.
1 |
use File; |
Sehingga keseluruhan isi controller UploadController.php sekarang seperti berikut.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Gambar; use File; class UploadController extends Controller { public function upload(){ $gambar = Gambar::get(); return view('upload',['gambar' => $gambar]); } public function proses_upload(Request $request){ $this->validate($request, [ 'file' => 'required|file|image|mimes:jpeg,png,gif,webp|max:2048', 'keterangan' => 'required', ]); // menyimpan data file yang diupload ke variabel $file $file = $request->file('file'); $nama_file = time()."_".$file->getClientOriginalName(); // isi dengan nama folder tempat kemana file diupload $tujuan_upload = 'data_file'; $file->move($tujuan_upload,$nama_file); Gambar::create([ 'file' => $nama_file, 'keterangan' => $request->keterangan, ]); return redirect()->back(); } public function hapus($id){ // hapus file $gambar = Gambar::where('id',$id)->first(); File::delete('data_file/'.$gambar->file); // hapus data Gambar::where('id',$id)->delete(); return redirect()->back(); } } |
Bagian terakhir dari method hapus() ini kita mengalihkan halaman kembali ke halaman sebelumnya dengan fungsi redirect()->back().
Hapus Data Beserta Gambar Dengan Laravel
Oke sekarang kita lihat hasilnya, Akses project kita dengan menjalankan php artisan serve. kemudian akses localhost:8000/upload.
Coba klik HAPUS pada salah satu record data yang ada.
![hapus file dengan laravel](https://www.malasngoding.com/wp-content/uploads/2019/03/hapus-file-dengan-laravel.png)
hapus file dengan laravel
Sekarang data akan hilang.
![hapus data dan gambar dengan laravel](https://www.malasngoding.com/wp-content/uploads/2019/03/hapus-data-dan-gambar-dengan-laravel.png)
hapus data dan gambar dengan laravel
Kita cek juga pada folder data_file, apakah gambar berhasil dihapus.
![delete file dengan laravel](https://www.malasngoding.com/wp-content/uploads/2019/03/delete-file-dengan-laravel.png)
delete file dengan laravel
Oke selesai. sekarang kita sudah berhasil membuat upload file dengan laravel, dan kita juga telah berhasil membuat proses hapus data beserta gambar dengan laravel.
BACA : Tutorial Laravel #30 Membuat Upload File Laravel
Tutorial Menarik Lainnya
![action url laravel](https://www.malasngoding.com/wp-content/uploads/2019/04/action-url-300x189.png)
Tutorial Laravel #41 : Action URL Laravel
![laravel localization](https://www.malasngoding.com/wp-content/uploads/2019/04/laravel-localization-300x189.png)
![laravel localization](https://www.malasngoding.com/wp-content/uploads/2019/04/laravel-localization-300x189.png)
Tutorial Laravel #40 : Multi Bahasa Localization Laravel
![](https://www.malasngoding.com/wp-content/uploads/2019/04/import-excel-laravel-1-300x189.png)
![](https://www.malasngoding.com/wp-content/uploads/2019/04/import-excel-laravel-1-300x189.png)
Tutorial Laravel #39 : Import Excel Laravel
![](https://www.malasngoding.com/wp-content/uploads/2019/04/export-excel-laravel-300x189.png)
![](https://www.malasngoding.com/wp-content/uploads/2019/04/export-excel-laravel-300x189.png)
selamat malam gan…. saya sudah baca artikel agan tentang upload dan hapus file dengan laravel…. namun saya masih kebingungan saat edit datanya, dimana ada 2 pilihan edit….
1. edit dengan mengganti gambar
2. edit dengan tidak mengganti gambar
saya masih kebingungan script di controllernya gan….
kalau sempat minta tolong tutorialnya gan, atau bisa langsung diemail ke saya….
terimakasih kasih sebelumnya gan dan semoga dalam keadaan sehat walafiat…. amiiinnnnnn
Mas saya sudah ikutin tutorial untuk delete file tapi kenapa cuma datanya aja ya yang ke delete, foto yang saya upload masih ada di public
Mohon pencerahannya mas
Saya pake laravel 8
Terima kasih
saya izin bertanya, kenapa saya dapat eror itu ya setelah mencoba? Using $this when not in object context