Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Laravel’de Resim Dosyası Yükleme: Adım Adım Kılavuz
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Laravel’de Resim Dosyası Yükleme: Adım Adım Kılavuz

Yazılım

Laravel’de Resim Dosyası Yükleme: Adım Adım Kılavuz

teknomers
Son güncelleme: 23 Temmuz 2026 09:58
teknomers
Paylaş
Paylaş

Bir Laravel projesinde, müşteri portali, içerik yönetim sistemi veya e-ticaret platformu olsun, her zaman bir ihtiyaç ortaya çıkar: görüntü yükleme işlevselliği. Kullanıcı avatarları, ürün fotoğrafları, blog küçük resimleri ve belge ekleri, güvenilir bir görüntü yükleme sistemine dayanır. Bu gereksinim sürekli karşımıza çıkar, ancak her seferinde belgelere başvurduğumda, kendimi yarım düzine kaynaktan parça parça bilgi toplarken buluyorum.

Çoğu eğitim, yolun düzgün geçtiği tarafını kapsar. store() yöntemini gösterir, enctype="multipart/form-data"‘dan bahseder ve tamam der. Peki, karmaşık kısımlara ne olacak? Bir kullanıcı 12MB’lık bir dosya yüklediğinde sunucunuz takılırsa ne olur? Doğrulama kuralı yerel olarak geçer fakat yapılandırılmamış bir php.ini yüzünden üretim VPS’nizde başarısız olursa? Ve uygulamanız, dosya adları çakışmalarını düzgün bir şekilde yönetiyor mu, yoksa dosyaları sessizce ezip geçiyor mu?

Bu kılavuz, Laravel’de sağlam bir görüntü yükleme işlevselliği inşa etmem gerektiğinde var olmasını istediğim bir eğitimdir. Veritabanı şemamızın nasıl yapılandırılacağından, istemci tarafı önizleme ile forma kadar, eğitici makalelerde atlanan doğrulama uç durumlarına, gerçekten önemli olan güvenlik hususlarına kadar her şeyi ele alacağız.



TL;DR

  • Laravel, görüntü yüklemelerini dosya sistemi katmanı aracılığıyla yönetir, temel yüklemeler için ekstra paket gerekmez.
  • Veritabanınızda yalnızca dosyaları değil, aynı zamanda meta verileri de saklayın: dosya adı, yol, MIME türü, boyut, boyutlar.
  • Her zaman sunucu ve istemci tarafında doğrulama yapın, sunucu tarafı doğrulama tartışılmazdır.
  • storage:link komutu, dosyaları kamusal webden sunmak için hala gereklidir.
  • Üretim kaygıları, PHP limitleri, disk izinleri, dosya adı çakışmaları, çoğu eğitimin zayıf kaldığı yerlerdir.
  • ServerAvatar’ın yerleşik sunucu yönetimi, dağıtım iş akışınızdaki izin ve PHP yapılandırma sorunlarını ortadan kaldırır.



Laravel’in Dosya Depolama İşleyişi

Bir satır kod yazmadan önce, bir dosya yüklemesi Laravel uygulamasına ulaştığında gerçekten ne olduğunu anlamak faydalıdır. Bu model, ileride saatlerce hata ayıklama yapmaktan kurtulmanızı sağlar.

Kullanıcı bir multipart formu gönderdiğinde, Laravel yüklenen dosyayı bir UploadedFile nesnesi içinde sarar. Bu sadece dosya verisi değildir, aynı zamanda orijinal dosya adı, MIME türü, dosya boyutu, disk üzerindeki geçici yol ve daha fazlasını taşıyan meta verileri de içerir.

Laravel’in resmi belgeleri, yüklenen dosyalar, depolama diskleri ve dosya sistemi işlemleri hakkında detaylı bir genel bakış sunmaktadır; eğer gelişmiş depolama özelliklerini keşfetmek isterseniz bakabilirsiniz.

Upload image in Laravel work flow

Laravel, bu nesneyi dosya sistemi katmanına teslim eder ve bu katman, dosyanın nereye konulacağına config/filesystems.php yapılandırmanıza göre karar verir. Görüntü yüklemeleri için en ilgili iki disk şunlardır:

  • public – Dosyalar storage/app/public‘de bulunur. Bu dosyalar, yalnızca php artisan storage:link komutunu çalıştırdıysanız, doğrudan webden erişilebilir. Bu, halka açık olarak sunmak istediğiniz kullanıcı yüklemeleri için standart bir yoldur.
  • local – Dosyalar storage/app‘de bulunur. Bu dosyalar, varsayılan olarak web erişimine kapalıdır, bu nedenle erişim kontrolü sağlamak istediğiniz dosyalar için uygundur; düşünün, bir ödeme duvarının arkasındaki belgeler veya imzalı URL aracılığıyla sunulan görüntüler.
  • Çoğu görüntü yükleme kullanım durumu için, profil fotoğrafları, ürün resimleri, galeri yüklemeleri, public yolu kullanacaksınız ve bu kılavuzda bu yola odaklanacağım.



    Veritabanı Tasarımı: Görüntü Meta Verilerini Doğru Şekilde Saklama

    Görduğüm sık bir hata: yüklenen görüntü yolunu kullanıcı veya ürün tablosunda düz bir dize sütunu olarak saklamak ve işin içinden çıkmak. Bu, görüntünün boyutlarını görüntülemeniz, dosya boyutuna göre filtrelemeniz veya hangi yüklemelerin depolama şişmesine neden olduğunu takip etmeniz gerektiğinde çalışır.

    Database Design - Upload image

    Kaygılarınızı bir araya getirin. Ayrı bir görseller tablosu oluşturun ve polimorfik bir ilişki kullanın. Bu şekilde, uygulamanızdaki herhangi bir model, bir kullanıcı, bir ürün, bir blog yazısı gibi görseller taşıyabilir ve ana tablolarınızı gereksiz yere karıştırmamış olursunuz.

    Schema::create('images', function (Blueprint $table) {
    $table->id();
    $table->morphs('imageable'); // imageable_type ve imageable_id ekler
    $table->string('filename');
    $table->string('path');
    $table->string('mime_type');
    $table->unsignedInteger('size'); // bayt cinsinden
    $table->unsignedSmallInteger('width')->nullable();
    $table->unsignedSmallInteger('height')->nullable();
    $table->timestamps();
    });
    
    Full screen mode

    Çıkış

    Görsel genişliği ve yüksekliğini saklamak, duyarlı görseller yaratmak, en boy oranlarını doğrulamak ve küçük resimler oluşturmak için faydalı olabilir. Bu değerleri, yükleme sırasında PHP’nin getimagesize() işlevini kullanarak kolayca alabilirsiniz.

    Karşılık gelen Eloquent modeli basit bir yapıdadır:

    class Image extends Model
    {
    protected $fillable = [
    'filename', 'path', 'mime_type', 'size', 'width', 'height'
    ];
    
    public function imageable()
    {
    return $this->morphTo();
    }
    
    public function url(): string
    {
    return asset('storage/' . $this->path . "https://dev.to/" . $this->filename);
    }
    }
    
    Full screen mode

    Çıkış

    Bu uygulama size sadece bir düz dize sütununun sağladığı özellikleri vermez: boyuta göre görselleri sorgulama, boyutlara göre filtreleme, verimli bir şekilde öngörme yükleme ve depolama arka uçlarını değiştirip uygulama kodunuzu dokunmadan güncelleme imkanı sunar.

    Tam Makaleyi Oku: https://serveravatar.com/laravel-image-upload

Kaynak: Orijinal Makale

Contents
  • TL;DR
  • Laravel’in Dosya Depolama İşleyişi
  • Veritabanı Tasarımı: Görüntü Meta Verilerini Doğru Şekilde Saklama
Django, Rails ve Laravel Başlangıç Şablonlarının Karşılaştırması
Laravel’de Sıfır Kesinti ile Veri Tabanı Göçleri
Geliştirici Günlüğü: 2026-06-26 — Yapılandırma Odaklı Faturalama, Uygulama Genelinde Yeniden Markalaşma ve Markalı Hata Sayfaları
Proje BookMyShow: Gün 7 – DEV Topluluğu
İşçi Çöküşlerini Durdurma: Üretimde Laravel Kuyruk Bellek Sızıntılarını Giderme
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale RoboCop: Rogue City 2 İçin Beklenen Duyuru Geldi
Sonraki Makale Güney Kore’nin Korbit Borsası 1 Trilyon Dolar Değerindeki Mirae Grubu’na Katıldı

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Acil Uyarı: Saldırılarda Exploit Edilen SmartConsole Sıfır Günü!
Siber Güvenlik
Acil: Check Point SmartConsole Açığı ile Admin Erişimi Tehdit Altında
Siber Güvenlik
Güney Kore’nin Korbit Borsası 1 Trilyon Dolar Değerindeki Mirae Grubu’na Katıldı
Finans
RoboCop: Rogue City 2 İçin Beklenen Duyuru Geldi
Oyun
ServiceNow, Hindistan’da 40 milyon dolara bankacılık yazılımına yatırım yapıyor
Yapay Zeka
Xbox’un Haziran 2026’da ABD’de Başarıları Artarken PS5 ve Switch 2 Geriledi
Oyun
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?