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
API’lerinizi Duraklatmayın: WebSocket ile Gerçek Zamanlı SaaS Mimarisi Tasarımı
CSV İçe Aktarmalarını Ölçeklendirme: Laravel Görev Gruplama Ustası
Çoğu CMS Platformunun Zamanla Bakımının Neden Zorlaştığı
2026 İçin Nihai Laravel Öğrenme Yol Haritası ve Kaynaklar Listesi
Laravel ile Inertia ve React kullanarak Çok Dilli Uygulama Geliştirme: Pratik Bir Kılavuz
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale RoboCop: Rogue City 2 İçin Beklenen Duyuru Geldi

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

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
İnerji ve API yanıtlarının uyumlu bir şekilde bir arada varlığı
Yazılım
Hasbro’nun Zelda Figürleri Tanıtıldı, Görüntüleri Büyüleyici
Oyun
Costco’da şanslı oyuncu, sergileme indirimli 9800X3D PC aldı
Donanım
//

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?