Buradasın
PHP ile Web Uygulamasında Resim Yükleme ve Veritabanı İşlemleri Eğitimi
youtube.com/watch?v=XhaJ1Djvn6UYapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan PHP programlama dilinde web uygulamasında resim yükleme ve veritabanı işlemleri konulu kapsamlı bir eğitim içeriğidir.
- Video, makale ekleme sayfasına resim yükleme özelliğinin nasıl ekleneceğini adım adım göstermektedir. İçerikte multipart form formatı kullanımı, form doğrulama kuralları, dosya boyutu kontrolü, dosya isminin oluşturulması, dosya yükleme seçenekleri (lokal, public, factory), veritabanına kaydetme işlemleri ve slug kontrolü gibi konular detaylı olarak anlatılmaktadır.
- Eğitim, web uygulamalarında dosya yükleme ve veritabanı işlemleri yapmak isteyenler için teknik bir rehber niteliğindedir. Ayrıca, yüklenen dosyanın varlığını kontrol etme yöntemleri (Illuminate Support Face ve f_exists fonksiyonları), kısayol oluşturma işlemleri ve başarılı kayıt sonrası kullanıcıya uyarı mesajı verme gibi pratik uygulamalar da gösterilmektedir.
- Tasarım ve Form Oluşturma
- Derste birebir aynı işlem yapılmış ve tasarım sessiz bir şekilde oluşturulmuştur.
- Form'a "and type multipart" eklenerek fotoğraf ve image eklenebilmesi sağlanmıştır.
- Resmin yolunu kaydetmek için bir alan oluşturulmuş ve responsive olması için en fazla yükseklik değeri verilmiştir.
- 01:15Proje Yapısı ve Post İşlemi
- Makale ekle bölümüne gelindiğinde tasarımın son durumu gösterilmiştir.
- Projenin bir root olması gerektiği, post işlemi için store metodunun oluşturulması gerektiği belirtilmiştir.
- Store metodu oluşturulduktan sonra request alarak işlem başlatılmıştır.
- 02:20Resim Yükleme İşlemi
- Tarih seçildiğinde tüm veriler gelmiş ve image'in geldiği zaman upload file şeklinde bir türden geldiği belirtilmiştir.
- Resmin orijinal ismi, uzantısı ve dosya boyutu (kilobayt cinsinden) form request'te görüntülenmiştir.
- Resim yüklemeden önce form request oluşturulup validation'lar tamamlanmıştır.
- 03:34Form Validation
- Form request title, sla ve body alanlarını alıyor, zorunlu olanlar title ve body'dir.
- Sla için maksimum 255 karakter sınırı, kategori için ayrı alan ve resim için image type kontrolü yapılmıştır.
- Max 2048 (2 megabayt) dosya yükleme sınırı belirlenmiştir.
- 05:02Resim Yükleme İşlemi Detayları
- Resim yükleme kısmında original name alınarak request'teki file'ın ismi alınmıştır.
- Extension bilgisi iki farklı şekilde alınabilmekte, image file'ın get original extension'ı ve extension fonksiyonu kullanılabilmektedir.
- Dosyanın ismi noktadan oluşuyor ve bu nokta ile uzantıyı ayırmak için işlem yapılmaktadır.
- 08:05Dosya İsimlendirme İşlemi
- File name değişkeni oluşturulup, original name alanı nokta (.) ile bölünerek file name'e atanıyor.
- Dosya ismi boşluk içermemeli, bu yüzden tirelerle ayrılmış şekilde saklanmalı.
- Explode ve str_split fonksiyonları kullanılarak dosya ismi ve uzantısı ayrıştırılıyor.
- 10:19Resim Yükleme İşlemi
- Resim yükleme işlemi için image file fonksiyonu kullanılıyor.
- Dosyanın kaydedileceği yol belirleniyor, örneğin "public/artık" şeklinde.
- Options alanı ile dosyanın public, lokal veya fabrika olarak ayarlanabileceği belirtiliyor.
- 11:10Dosya Konfigürasyonu
- Config dosyalarında sistem diskte bir alan bulunuyor ve default olarak "public" olarak ayarlanıyor.
- Lokal ve fabrika bölümleri arasında fark var; fabrika bölümünde "public" bölümü yok ve dosya "public/public" altına kaydediliyor.
- Public olarak ayarlanan dosyalar herkes tarafından ulaşılabilir hale geliyor.
- 13:30Dosya Yükleme ve İsimlendirme
- Eğer dosya ismi belirtilmezse lokal olarak atanıyor, public altına atmak için "public/artık" yazılmalı.
- Dosyanın ismini kendimiz vermek istiyorsak "store" ve "options" arasına dosya ismini yazabiliriz.
- Public olarak vermek istemiyorsak, "public" bölümünü otomatik olarak ayarlayabiliriz.
- 15:38Dosya Kontrolü
- Yüklenen bir resmin daha önce yüklenip yüklenmediğini kontrol etmek için iki yöntem var: Illuminate\Support\Facade::exists veya file_exists.
- Public path kullanarak dosyanın yolunu belirleyebiliriz.
- Dosya varsa if bloğu içinde return redirect ile geri gönderme işlemi yapılabilir.
- 20:18Görsel Yükleme ve Kontrol İşlemleri
- Görsel yükleme işlemi sırasında, daha önce yüklenen görselleri tekrar kullanmak isteyenler için özel bir bölüm bulunmaktadır.
- Yüklenen görsellerin arasında seçim yapılabilir, yeni görsel yüklemek gerekmez.
- Hata kontrolü için en üstte bulunan error bölümü kullanılır ve CSRF token hariç tüm veriler alınır.
- 21:24Slug Kontrolü
- Slack kontrolü için datanın içindeki slug değeri alınır ve tireli hale getirilir.
- Slack daha önce kullanılmış mı kontrolü yapılır, bu kontrol için frontend'ten veri gelmesi sağlanabilir.
- Slack daha önce kullanılmışsa, slug'a time eklenerek yeni bir slug oluşturulur.
- 23:23Kategori Kontrolü
- Kategorinin altında bulunan çek fonksiyonu kopyalanıp, slug kontrolü için kullanılır.
- Çek fonksiyonu kategoriye bakıp slug'ın varlığını yokluğunu kontrol eder.
- Eğer slug kullanılıyorsa, title slug kontrolü yapılır ve slug değeri güncellenir.
- 27:08Dosya Yolu Oluşturma
- Yüklenen görselin yolunu oluşturmak için public path kullanılır.
- Folder adı belirlenerek dosya yolu oluşturulur.
- Dosya yolu oluşturulurken slash işareti kullanılır ve gerekli düzenlemeler yapılır.
- 29:32Veritabanına Kaydetme ve İşlem Tamamlama
- İlgili data veritabanına create edilir ve user id'si alınır.
- Kredi işlemi gerçekleştirildikten sonra dosya yüklenir.
- İşlem başarıyla gerçekleşirse "makale başarıyla kaydedildi" uyarısı verilir.