Laravel 10 Resim Yükleme Örneği Eğitimi

L

Bu örnekte, Laravel 10'da resim yükleme işleminin nasıl yapıldığını anlatacağım. Bu yazı, Laravel 10'da resim yükleme işleminin basit bir örneğini sunacak. Laravel 10'da resim yüklemek için veritabanına yükleme yapacağız. Adım adım, Laravel 10'da resim yükleme ve görüntüleme işlemini açıklayacağım.

Bu öğreticide, iki tane route oluşturacağız. Bir tanesi formu görüntülemek için get metodu için, diğeri ise resim yükleme kodu için post metodu için olacak. Basit bir dosya girişi olan bir form oluşturduk. Yani sadece bir resim seçmeniz ve ardından public klasöründeki "images" dizinine yükleyecektir.

Aşağıdaki adımları takip ederek Laravel 10 uygulamasında resim yükleme işlemini gerçekleştirebilirsiniz.

Adım 1: Laravel 10 Uygulamasını Kurun

Eğer henüz bir Laravel uygulaması oluşturmadıysanız aşağıdaki komutu kullanarak bir Laravel 10 uygulaması oluşturabilirsiniz: 

composer create-project laravel/laravel example-app

Adım 2: Controller Oluşturun

Bu adımda, ImageController adında bir controller oluşturacağız. Bu controller içinde index() ve store() olmak üzere iki yöntem ekleyeceğiz.

php artisan make:controller ImageController

Sonrasında oluşan ImageController.php dosyasını aşağıdaki şekilde güncelleyin:

 app/Http/Controllers/ImageController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use Illuminate\View\View;
use Illuminate\Http\RedirectResponse;
  
class ImageController extends Controller
{
    public function index(): View
    {
        return view('imageUpload');
    }
        
    public function store(Request $request): RedirectResponse
    {
        $request->validate([
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);
        
        $imageName = time().'.'.$request->image->extension();  
         
        $request->image->move(public_path('images'), $imageName);
      
        /* 
            Veritabanına $imageName adını burada kaydedin
        */
        
        return back()
                    ->with('success', 'Resim başarıyla yüklendi.')
                    ->with('image', $imageName); 
    }
}

Adım 3: Rotaları Oluşturun

Daha sonra routes/web.php dosyasını açın ve aşağıdaki kodu ekleyerek GET ve POST isteklerini yönetecek rotaları oluşturun:

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ImageController;

Route::controller(ImageController::class)->group(function(){
    Route::get('image-upload', 'index');
    Route::post('image-upload', 'store')->name('image.store');
});

Adım 4: Blade Şablonu Oluşturun

Son adımda resources/views dizinine imageUpload.blade.php adında bir Blade şablon dosyası oluşturun. İçeriği aşağıdaki gibi olsun: 

<!DOCTYPE html>
<html>
<head>
    <title>Laravel 10 Resim Yükleme Örneği </title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
    <div class="panel panel-primary">
        <div class="panel-heading">
            <h2>Laravel 10 Resim Yükleme Örneği</h2>
        </div>
        <div class="panel-body">
            @if ($message = Session::get('success'))
            <div class="alert alert-success alert-block">
                <button type="button" class="close" data-dismiss="alert">×</button>
                <strong>{{ $message }}</strong>
            </div>
            <img src="images/{{ Session::get('image') }}">
            @endif
            <form action="{{ route('image.store') }}" method="POST" enctype="multipart/form-data">
                @csrf
                <div class="mb-3">
                    <label class="form-label" for="inputImage">Resim:</label>
                    <input 
                        type="file" 
                        name="image" 
                        id="inputImage"
                        class="form-control @error('image') is-invalid @enderror">
                    @error('image')
                        <span class="text-danger">{{ $message }}</span>
                    @enderror
                </div>
                <div class="mb-3">
                    <button type="submit" class="btn btn-success">Yükle</button>
                </div>
            </form>
        </div>
    </div>
</div>
</body>
</html>

Bu şekilde imageUpload.blade.php dosyasını düzgün bir şekilde oluşturmuş olursunuz.

Laravel Uygulamasını Çalıştırın

Gerekli adımlar tamamlandıktan sonra aşağıdaki komutu çalıştırarak Laravel uygulamanızı başlatabilirsiniz:

php artisan serve

Web tarayıcınıza aşağıdaki URL'yi girerek uygulamanın çıktısını görebilirsiniz:

http://localhost:8000/image-upload

Bu şekilde Laravel 10 uygulamanızda resim yükleyebilir ve görüntüleyebilirsiniz.

By Aydın Yağız

Aydın Yağız

Teknolojiye olan tutkumla inovasyonu destekler, kullanıcı deneyimini önceliklerim arasına alırım. Kendi yeteneklerimi ve bilgilerimi paylaşarak, daha geniş bir topluluğun faydalanmasını sağlarım. İş birliği içinde hareket ederek, geleceğin teknoloji dünyasına katkıda bulunmayı hedeflerim. Sizi de bu heyecan verici yolculuğa davet ediyor, fikirlerinizi paylaşmaya ve teknolojiye dair sınırları zorlamaya teşvik ediyorum. Birlikte büyüyelim ve yeni ufuklara açılalım!

İletişime Geçin

Kodlama dünyasına adım atın ve deneyimlerinizi paylaşın. Siz de bu aktif topluluğa katılarak yeni bağlantılar kurun, fikir alışverişinde bulunun ve bilgi birikiminizi artırın.

Özelleştir

Farklı yazı tipleri ve renk seçenekleriyle stilinizi kişiselleştirin. Aşağıdaki örneklerden birini deneyerek sizin için en uygun olanı seçin.

Yazı Tipi Örnekleri

Renk Örnekleri