Laravel’da Sunucuya Dosya Yükleme

Uzun bi aradan sonra herkese merhabalar arkadaşlar.Bugün Laravel’de sunucuya dosya yüklemeyi görücez.Uzatmadan başlayalım.

İlk başta bir blog kodladığımızı ve blog konusu için resme ihtiyacımız olduğunu düşünelim.bunun için bir Rota bilgisi oluşturuyorum.

App\Http\routes.php dosyasını açalım

Route::get('/konu_ekle','HomeController@konu');
Route::post('/konu_ekle','HomeController@konu_kaydet');

Rotamızı oluşturduktan sonra App\Http\Controller Dizinine gidiyorum ve HomeController’i açıyorum.Ekleme formunun görüntüleneceği HomeController’in konu fonksiyonunu düzenliyoruz.

 function konu(){
 return view('blog.konu_ekle');
}

Resourcez\Views\blog\ klasörüne gidiyoruz ve konu_ekle.blade.php dosyamızı oluşturuyoruz.Formumuz basit bi şekilde tasarlıcam aşağıdaki gibi olsun.

@extends('layouts.app')
@section('content')
 form enctype="multipart/form-data" method="POST" action=""> 
  input type="file"  name="resim" class="form-control">
 

Dikkat etmemiz gereken nokta form enctype=”multipart/form-data” ekliyoruz.Yoksa Dosyayı yükleyemezsiniz.

Daha sonra HomeController@konu_ekle fonksiyonuna gidiyoruz.Normalde POST işlemlerimizi Request ile yapıyorduk.Burdada o şekilde yapıcaz sadece birkaç değişikliğimiz olucak

  if (isset($_FILES["resim"]["name"])) {
                        $dosya  = $request->resim;
                        $kaynak = $_FILES["resim"]["tmp_name"];
                        $dosya  = str_replace(" ", "_", $_FILES["resim"]["name"]);
                        $uzanti = explode(".", $_FILES["resim"]["name"]);
                        $hedef  = "./" . $dosya;
                        if (@$uzanti[1]) {
                            if (!file_exists($hedef)) {
                                $hedef   =  "image/".$dosya;
                                $dosya   = $dosya;
                            }
                            move_uploaded_file($kaynak, $hedef);
                        } else {
                            echo " geçersiz dosya tipi ";
                        }
                    }

PHP de olduğu gibi dosyaları $_FILES ile çekiyoruz.Dikkat etmeniz gereken nokta $_FILES[“buraya formdaki name gelicek”] ben kendi kodlarımda public\image\ klasörüne resmi kaydetmesini istedim kodları çalıştırdığımda resim başarılı bir şekilde yüklenmiş olucak.