Görsel, müzik dosyası ve belge yükleme sistemi.
Sisteme yüklenen tüm dosyalar merkezi olarak yönetilir. Görseller, şarkı dosyaları, kapak resimleri, belgeler... Hepsi tek yerden kontrol edilir.
Yüklenen görseller farklı boyutlarda otomatik oluşturulur.
Dosyalar kategorilere ayrılır: kapak, avatar, belge...
Her dosya hangi içeriğe ait olduğunu bilir (şarkı, albüm, kullanıcı...).
Dosyalar sunucuda güvenle saklanır.
Avantajları
Bir görsel yüklediğinizde sistem farklı boyutlarda kopyalar oluşturur. Büyük ekranda büyük, küçük ekranda küçük görsel kullanılır. Sayfa hızlı açılır.
Bir dosya yüklediğinizde sistem şu adımları otomatik uygular:
Yüklenen dosyanın MIME type'ı kontrol edilir. Sadece izin verilen formatlar kabul edilir: image/jpeg, image/png, audio/mpeg, application/pdf. Dosya boyutu limiti kontrol edilir (max 50MB). Zararlı dosyalar (PHP, exe) reddedilir.
Dosya adı çakışmasını önlemek için UUID tabanlı isim oluşturulur: a3b2c1d4-e5f6-7890-abcd-ef1234567890.jpg. Orijinal dosya adı da saklanır (kullanıcıya göstermek için). Hash ile duplicate kontrolü yapılabilir.
Görsel dosyalar için Intervention Image paketi devreye girer. Tanımlı boyutlarda (50x50, 150x150, 300x300, 600x600) kopyalar oluşturulur. WebP formatına dönüştürülür (daha küçük boyut). Orijinal dosya da saklanır.
media tablosuna kayıt oluşturulur: model_type (App\Models\Song), model_id (123), collection_name (cover), file_name, mime_type, size, disk (public). Polymorphic ilişki ile herhangi bir model'e bağlanabilir.
Her dosya bir koleksiyona atanır: "cover" (albüm kapağı), "avatar" (profil fotoğrafı), "audio" (ses dosyası), "document" (belge). Model'de registerMediaCollections() ile tanımlanır. Koleksiyona göre farklı boyut/format kuralları uygulanır.
$song->getFirstMediaUrl('cover') çağrıldığında public URL döner: /storage/123/cover.jpg. Thumbnail için: getFirstMediaUrl('cover', 'thumb') → /storage/123/conversions/cover-thumb.jpg. CDN kullanılıyorsa URL otomatik değişir.
(Medya)
Görsel, ses, video gibi dijital dosyaların genel adı.
Fotoğraf albümü gibi düşünün, ama dijital.
(Küçük Resim)
Büyük resmin küçültülmüş önizleme hali.
Posta pulu boyutunda fotoğraf gibi.
(Koleksiyon)
Dosyaların gruplandığı kategori. "cover", "avatar", "document"...
Dosya klasörü gibi.
(Depolama)
Dosyaların sunucuda saklandığı alan.
Dijital depo, dosya dolabı.
Medya kütüphanesi