...

ZN FRAMWORK'TA RESİM YÜKLEME


ZnFramwork'la kendi yönetim panelimizi yapıyorsak bazen resim yüklemede yapmak isteyebiliyoruz, aslında kendi sitesindeki dökümanlarında gösteriyor ama ben hem kendime not olsun diye hemde belki sizin işinizede yarar diye burayada ekliyorum, bu arada kullandığım sürüm benim eski bir sürüm ( 4.X ) ama yeni sürümlerde de çoğunlukta bu kodlar çalışıyor.  

< form action="" method="post" enctype="multipart/form-data">
   < input type="file"  name="resim[]" value="" multiple >
   < button type="submit" class="btn btn-success btn-block">KAYDET
< /form>

yukarda basitçe resim yüklemek için gerekli formu yazdık input name kısmında dikkat ederseniz resim[] yazdık koyu olan kısım tek resim değilde çoklu resim gönderebilmemiz için [] işaretini ekledik böylelikle gönderilecek dosyaların bir array olduğunu php ye bildirdik devamında yine input içinde multiple tagını kullandık burdada açılan pencerede birden fazla dosyayı seçebilmemizi sağladık.

Şimdi gelelim php kısmına 

Upload::settings([
   'encode' => false,
   'prefix' => '__ea__',
   'extensions' => 'jpg|png|gif',
   'maxsize' => 153600])
->target('uploads/ilan')
->start('resim');

encode, dosya isminin şifrelenmeyeceğini belirttik.
prefix, dosya isminin başına eklenecek isim biz yine __ea__ ekle demişiz, örnek __ea__dosyaismi.jpg
extensions, izin verilen dosya uzantılarını yazıyoruz, biz jpg, png, gif harici dosyaları yükleme dedik
maxsize, resim dosyasının en fazla ne kadar büyük olacağını yazdık 153600 byte 150Kb'ye denk geliyor, en fazla 150kb'lik dosyalar yüklensin demişiz.
target('upload'), resimlerin yükleneceği dizin adıdır, burda ne isim belirtirseniz resimleri oraya yükler başlangıç seviyesi kök dizindir.
start('resim'), formdan gelen inputun name değeridir, inputta değeri köşeli parantezle belirtirken burda sadece adını yazıyoruz.

Genel hatlarıyla resim yüklemek bu kadar basit aslında, birde şeyi isteyebilirsiniz, tamam resimleri yükledik veritabanına nasıl kaydedeceğiz, o da basit kodlar aşağıda

foreach (Upload::info('path') as $key) {
   DB::insert('tabloadı', ['sütunadı' => $key]);
}

Upload::info(), bize yüklenen dosya hakkında gerekli bilgileri veriyor, bana yüklendiği yerin url'sini verse ve sadece onu kaydetsem yeterli o url adresinide  Upload::info('path') paramatresi bana veriyor , bunuda foreach ile döngüye sokup  $key ile veritabanın gerekli sütununa yazdırıyorum.