Menyimpan Gambar di Folder Public Sebelum Diunduh di Laravel
Untuk menyimpan gambar di folder public sebelum diunduh dalam aplikasi Laravel, Anda dapat mengikuti langkah-langkah berikut:
- Install Dompdf:
Pastikan Anda telah menginstal library Dompdf melalui Composer:
composer require barryvdh/laravel-dompdf
- Konfigurasi Dompdf:
Tambahkan service provider dan alias ke dalam fileconfig/app.php:
'providers' => [
// ...
Barryvdh\DomPDF\ServiceProvider::class,
],
'aliases' => [
// ...
'PDF' => Barryvdh\DomPDF\Facade::class,
],
- Buat Route dan Controller:
Tambahkan route berikut di fileroutes/web.php:
Route::get('/download-table', [TableController::class, 'downloadTable']);
Buat controller dengan perintah:
php artisan make:controller TableController
- Implementasi Controller:
Di dalamTableController, tambahkan kode berikut untuk mengonversi tabel HTML menjadi PDF, menyimpannya sebagai gambar di folderpublic, dan kemudian mengunduhnya:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use PDF;
use Illuminate\Support\Facades\Storage;
class TableController extends Controller
{
public function downloadTable()
{
$html = '
<html>
<head>
<style>
table {
border-collapse: collapse;
}
th, td {
border: 1px solid black;
padding: 5px;
}
</style>
</head>
<body>
<table>
<tr>
<th>Nama</th>
<th>Usia</th>
</tr>
<tr>
<td>John Doe</td>
<td>30</td>
</tr>
<tr>
<td>Jane Smith</td>
<td>25</td>
</tr>
</table>
</body>
</html>';
$pdf = PDF::loadHTML($html);
$output = $pdf->output();
$filePath = public_path('images/table_image.png');
file_put_contents($filePath, $output);
return response()->download($filePath);
}
}
- Uji Coba:
Jalankan server Laravel Anda dan akses URLhttp://localhost:8000/download-table. Jika berhasil, tabel HTML akan diubah menjadi gambar, disimpan di folderpublic/images, dan diunduh.
Dengan langkah-langkah di atas, Anda dapat mengonversi tabel HTML menjadi gambar, menyimpannya di folder public, dan kemudian mengunduhnya dalam aplikasi Laravel Anda. Jika Anda memiliki pertanyaan lebih lanjut, jangan ragu untuk bertanya!
