Tentukan bidang unggahan dalam formulir
Pertama, tambahkan <input type="file">
bidang ke formulir HTML untuk memungkinkan pengguna memilih file atau gambar untuk diunggah.
<form method="POST" action="{{ route('upload') }}" enctype="multipart/form-data">
@csrf
<input type="file" name="file">
<button type="submit">Upload</button>
</form>
Menangani permintaan upload
Di Laravel pengontrol, Anda dapat menangani permintaan unggahan dalam suatu metode. Gunakan Illuminate\Http\Request
objek untuk mengakses file yang diunggah dan melakukan operasi penanganan yang diperlukan.
use Illuminate\Http\Request;
public function upload(Request $request)
{
if($request->hasFile('file')) {
$file = $request->file('file');
// Handle the file here
}
}
Simpan file
Laravel menyediakan store
metode untuk menyimpan file yang diunggah. Cukup panggil metode ini pada objek file dan berikan jalur penyimpanan yang diinginkan.
$path = $file->store('uploads');
Menangani gambar
Jika Anda perlu menangani gambar, seperti mengubah ukuran, memangkas, atau menerapkan filter, Anda dapat menggunakan pustaka pemrosesan gambar seperti Gambar Intervensi. Pertama, instal paket Gambar Intervensi melalui Komposer:
composer require intervention/image
Kemudian, Anda bisa menggunakan metode perpustakaan untuk memproses gambar.
use Intervention\Image\Facades\Image;
public function upload(Request $request)
{
if($request->hasFile('file')) {
$file = $request->file('file');
$image = Image::make($file);
// Handle the image here
}
}
Tampilkan file dan gambar yang diunggah
Terakhir, Anda dapat menampilkan file dan gambar yang diunggah di antarmuka pengguna. Gunakan Laravel metode helper untuk menghasilkan URL publik untuk file dan gambar yang disimpan, dan gunakan dalam HTML atau CSS.
$url = asset('storage/'. $path);
Anda dapat menggunakan $url
variabel dalam HTML atau CSS untuk menampilkan file atau gambar yang diunggah.
Dengan mengikuti langkah-langkah ini dan menggunakan Laravel fitur bawaan, Anda dapat dengan mudah mengunggah dan menangani file dan gambar di Laravel aplikasi Anda.