laravel session file upload download
Bu eğitim, Laravel Oturumu, dosya yükleme, indirme, dosya izni, Laravel kimlik doğrulaması ve yetkilendirme, e-posta gönderme vb. Konularını örneklerle kapsar:
İçinde Laravel Formları ve Doğrulama Kuralları öğreticisi Laravel Eğitimi serisi , farklı form öğelerini örneklerle öğrendik.
Bu eğiticide ayrıca, nasıl yapılacağını da tartıştık. oturum verilerini ayarla, al, sil Laravel oturumları altında ve e-postaların nasıl gönderileceği Posta tuzağı detayda.
Tüm örnekler için kullandık Laravel sürüm 7 .
youtube mp3 dönüştürücü uygulaması ücretsiz indirme
Önkoşullar
Önceki eğitimlerimizde, Laravel'in temel özellikleri , veritabanı kullanımı, ve form işleme ve bu öğreticiyi daha iyi anlamak için bu konulara aşina olmanız gerekir.
Hadi başlayalım!
Ne öğreneceksin:
- Laravel Dosya Yükleme
- Laravel Oturumu
- Laravel Kimlik Doğrulaması
- Laravel Yetkilendirmesi
- Laravel'de E-posta Gönderme
- Sonuç
Laravel Dosya Yükleme
Laravel'de dosya yüklemek kolaydır. Geliştirici ayrıca şunları da belirtebilir: Laravel dosya izinleri dosya türleri, kullanıcı tarafından yüklenebilecek dosyaların boyut sınırları vb.
Laravel Dosya Yükleme Örneği
Bu örnekte, dosyaları yüklemek için doğrulama içeren basit bir form oluşturduk.
Aşama 1: Adlı bir Laravel projesi oluşturmak için komut isteminde aşağıdaki komutu çalıştırın. dosya yükleme öğreticisi .
composer create-project --prefer-dist laravel/laravel:^7.0 file-uploading-tutorial
Adım 2: Aşağıdaki iki yolu ekleyin yollar / web.php dosya.
Route::get('file/upload','FileUploadController@create')->name('file.create'); Route::post('file/upload','FileUploadController@store')->name('file.store');
Aşama 3: Oluşturmak için komut isteminde aşağıdaki komutu çalıştırın FileUploadController ve mevcut kodu aşağıda gösterildiği gibi değiştirin.
php artisan make: denetleyici FileUploadController
validate(('file' => 'required|mimes:doc,docx,xlx,csv,pdf|max:1024')); $file_name = time().'.'.$request->file->extension(); $request->file->move(public_path('file uploads'), $file_name); return back() ->with('success','Successfully uploaded a file!') ->with('file',$file_name); } }
4. Adım: Adlı bir görünüm dosyası oluşturun create.blade.php ve aşağıdaki kodu ekleyin:
Laravel File Uploading Tutorial @if (count($errors) > 0) @foreach ($errors->all() as $error) - {{ $error }}
@endforeach
@endif @if ($message = Session::get('success')) × {{ $message }} @endif Laravel File Uploading
@csrf File
Adım 5: Adlı bir klasör oluşturun dosya yüklemeleri içinde halka açık Klasör. Yüklenen dosyaların saklandığı klasördür.
6. Adım: Aşağıdaki URL'yi ziyaret edin, aşağıdaki ekran görüntüsüne benzer bir çıktı üretecektir.
Not : Aşağıdaki URL sizinkinden farklı olabilir.
http: //file-uploading-tutorial.test/file/upload
7. Adım: Artık geçerli bir dosya yükleyebilir ve formu gönderebilirsiniz. Yüklenen dosyanın şurada saklandığını doğrulayın: dosya yüklemeleri Klasör. Ayrıca geçersiz bir dosya (geçersiz dosya türü ve / veya boyut sınırı aşılan dosya) yüklemeyi deneyebilir ve doğrulamayı kontrol etmek için formu gönderebilirsiniz.
Yukarıdaki örnekte, kullanıcının yalnızca göndermesine izin verilir belge , docx , on dokuzuncu , csv, ve pdf maksimum boyutta dosyalar 1024 bayt .
Örnek 1: Boyutu 1024 bayttan daha küçük bir pdf dosyası yüklemek.
Örnek 2: Bir görüntü dosyası (PNG, JPEG, vb.) Yükleme.
Örnek 3: Boyutu 1024 bayttan fazla olan bir pdf dosyası yüklemek.
Laravel Oturumu
KİME oturum, toplantı, celse alışkın kullanıcı verilerini birden çok kullanıcı isteğinde depolayın . Yardımcı olur web sitesi kullanıcılarını takip edin . Laravel oturum yapılandırması, config / session.php dosya. Varsayılan olarak, dosya sürücüsü oturum verilerini işlemek için kullanılır.
Laravel Oturum Verilerini Alma
İlk olarak, bir HTTP isteği aracılığıyla erişilebilen bir oturum örneği almanız gerekir. Ardından, almak() verilere erişim yöntemi.
$session_data = $request->session()->get('key');
Laravel Oturumunda Veri Saklama
Bir oturumda veri depolamanın iki yolu vardır.
# 1) Kullanmak koymak() method - Bu yöntem, verileri bir istek örneği aracılığıyla depolar.
$request->session()->put('key', 'value');
#iki) Kullanma oturum, toplantı, celse helper - Bu yöntem, verileri genel yardımcı aracılığıyla depolar.
session(('key' => 'value'));
Laravel Oturum Verilerini Silme
Unuttun() yöntem, oturumdan belirli verileri silmek için kullanılır.
$request->session()->forget(key);
floş () yöntemi, oturumdaki tüm verileri silmek için kullanılır.
Laravel Oturum Kullanarak Flash Verileri
flaş () yöntem aynı zamanda verileri bir oturumda depolamak için kullanılır, ancak yalnızca sonraki HTTP isteği için kullanılabilir.
$request->session()->flash('status', Successful!');
Laravel Oturum Örneği
Hadi nasıl yapılacağını öğrenelim ayarla, almak ve sil basit bir oturum örneği kullanarak oturum verileri.
Aşama 1: Adlı bir Laravel projesi oluşturmak için komut isteminde aşağıdaki komutu çalıştırın. oturum öğretici .
composer create-project --prefer-dist laravel/laravel:^7.0 session-tutorial
Adım 2: Aşağıdaki üç yolu ekleyin yollar / web.php dosya.
Route::get('session/set','SessionController@store')->name('session.store'); Route::get('session/get','SessionController@index')->name('session.index'); Route::get('session/delete','SessionController@delete')->name('session.delete');
Aşama 3: Oluşturmak için komut isteminde aşağıdaki komutu çalıştırın SessionController ve mevcut kodu aşağıda gösterildiği gibi değiştirin:
php artisan make: denetleyici SessionController
session()->has('username')) echo $request->session()->get('username'); else echo 'No session data.'; } public function store(Request $request) { $request->session()->put('username','User A'); echo 'Session data stored.'; } public function delete(Request $request) { $request->session()->forget('username'); echo 'Session data deleted.'; } }
4. Adım: Aşağıdaki sırayla aşağıdaki URL'leri ziyaret edin: Ayarlamak , almak, ve sil oturum verileri.
Not : Aşağıdaki URL'ler sizinkinden farklı olabilir.
# 1) Aşağıdaki URL'yi ziyaret edin: oturum verilerini ayarla .
http: //session-tutorial.test/session/set
Aşağıdaki ekran görüntüsüne benzer bir çıktı üretecektir.
#iki) Aşağıdaki URL'yi ziyaret edin: oturum verilerini al .
http: //session-tutorial.test/session/get
Aşağıdaki ekran görüntüsüne benzer bir çıktı üretecektir.
# 3) Aşağıdaki URL'yi ziyaret edin: oturum verilerini sil .
http: //session-tutorial.test/session/delete
Aşağıdaki ekran görüntüsüne benzer bir çıktı üretecektir.
# 4) Oturum verilerini sildikten sonra, aşağıdaki URL'yi tekrar ziyaret edin.
http: //session-tutorial.test/session/get
Aşağıdaki ekran görüntüsüne benzer bir çıktı üretecektir.
Laravel Kimlik Doğrulaması
Laravel Kimlik Doğrulaması basittir. Alışkın kullanıcıları tanımla . Genellikle şu şekilde elde edilir: kullanıcının kullanıcı adı ve şifresinin belirlenmesi . Kullanıcı kimlik bilgileri geçerli olarak tanımlanırsa, kullanıcının bir Doğrulanmış kullanıcı .
config / auth.php dosyası, kimlik doğrulama yapılandırma dosyasıdır. Laravel kimlik doğrulaması şunlardan oluşur: muhafızlar ve sağlayıcılar .
Muhafızlar: Kullanıcıların her istek için nasıl kimlik doğrulandığını tanımlar.
Sağlayıcılar: Kullanıcıların kalıcı depolama alanınızdan nasıl alındığını tanımlar.
Ayrıca, gerektiğinde ek sağlayıcılar da tanımlayabilirsiniz. Ancak, varsayılan kimlik doğrulama yapılandırmasını değiştirmesi gerekmez.
Lütfen bunu not al bu eğitimde korumaları ve sağlayıcıları ayrıntılı olarak tartışmadık.
Kimlik Doğrulama Örneği
Bu örnekte, basit bir Laravel 7 kimlik doğrulama sistemi oluşturduk.
Aşama 1: Adlı bir Laravel projesi oluşturmak için komut isteminde aşağıdaki komutu çalıştırın. auth-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 auth-tutorial
Adım 2: Projenizi veritabanına bağlayın ve varsayılan geçişleri çalıştırmak için komut isteminde aşağıdaki komutu çalıştırın.
php artisan migrate
Aşama 3: Komut isteminde aşağıdaki komutu çalıştırın. Laravel UI paketi .
composer require laravel/ui
4. Adım: Sonraki adım oluşturmaktır Auth iskele ile Bootstrap, Görünüm, veya Tepki . Koşabilirsin aşağıdaki komutlardan biri kimlik doğrulama iskelesi oluşturmak için.
Yetkilendirme iskelesi oluşturmak için komut isteminde aşağıdaki komutu çalıştırın. Önyükleme .
php artisan ui bootstrap --auth
Yetkilendirme iskelesi oluşturmak için komut isteminde aşağıdaki komutu çalıştırın. Görünüm .
php artisan ui vue --auth
Yetkilendirme iskelesi oluşturmak için komut isteminde aşağıdaki komutu çalıştırın. Tepki .
php artisan ui react --auth
Adım 5: Yeni iskeleyi kurarak derlemek için komut isteminde aşağıdaki iki komutu çalıştırın. npm bağımlılıkları .
npm install npm run dev
6. Adım: Yeni bir kullanıcı oluşturarak (yeni bir kullanıcı kaydettirerek) ve sistemde oturum açarak kimlik doğrulamayı test etmek için aşağıdaki URL'leri ziyaret edin. Kimlik doğrulamayı test etmek için hem geçerli hem de geçersiz verileri deneyebilirsiniz.
Not : Aşağıdaki URL'ler sizinkinden farklı olabilir.
Öncelikle yeni bir kullanıcı kaydetmeniz gerekir. Yeni bir kullanıcı kaydetmek için aşağıdaki URL'yi ziyaret edin, aşağıdaki ekran görüntüsüne benzer bir çıktı üretecektir.
http: //auth-tutorial.test/register
Yeni bir kullanıcı kaydettikten sonra, aşağıdaki URL'yi ziyaret ederek sisteme giriş yapın ve aşağıdaki ekran görüntüsüne benzer bir çıktı üretecektir.
http: //auth-tutorial.test/login
Başarılı bir giriş, kullanıcıyı şuraya yönlendirir: ana sayfa / kontrol paneli Aşağıda gösterildiği gibi.
Laravel Yetkilendirmesi
Basit bir ifadeyle, yetki olup olmadığını doğrular kimliği doğrulanmış kullanıcılar, istenen kaynaklara erişmek için gerekli izne sahiptir .
Yetkilendirme Örneği
Bu örnekte, basit bir Laravel 7 yetkilendirme sistemi oluşturduk.
Aşama 1: Adlı bir Laravel projesi oluşturmak için komut isteminde aşağıdaki komutu çalıştırın. yetkilendirme öğretici .
composer create-project --prefer-dist laravel/laravel:^7.0 authorization-tutorial
Adım 2: Projenizi veritabanına bağlayın.
Aşama 3: Oluşturmak için komut isteminde aşağıdaki komutu çalıştırın. add_role_column_to_users_table mevcut kodu aşağıda gösterildiği gibi taşıyın ve değiştirin:
php artisan make: migration add_role_column_to_users_table
enum('role', ('admin', 'manager', 'user'))->default('user'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('users', function (Blueprint $table) { // }); } }
4. Adım: Tüm geçişleri çalıştırmak için komut isteminde aşağıdaki komutu çalıştırın.
php artisan migrate
Adım 5: Örnek verileri ekleyin Kullanıcılar masa kullanarak tamircilik Aşağıda gösterildiği gibi:
C:laragonwwwauthorization-tutorial php artisan tinker Psy Shell v0.10.4 (PHP 7.2.19 — cli) by Justin Hileman >>> $user = new AppUser; => AppUser {#3260} >>> $user->name = 'User A'; => 'User A' >>> $user->email = 'admina@user.com'; => 'admina@user.com' >>> $user->password = bcrypt('user123'); => 'y$E5hDEej0Cue1U5AY..tmR.Wd/YCo9LXN0kbqvX1por8Cdfi.NhGv6' >>> $user->role = 'admin'; => 'admin' >>> $user->save(); => true
6. Adım: Komut isteminde aşağıdaki komutu çalıştırın. Laravel UI paketi .
composer require laravel/ui
7. Adım: Sonraki adım oluşturmaktır Auth iskele ile Bootstrap, Görünüm, veya Tepki . Koşabilirsin aşağıdaki komutlardan biri kimlik doğrulama iskelesi oluşturmak için.
Yetkilendirme iskelesi oluşturmak için komut isteminde aşağıdaki komutu çalıştırın. Önyükleme .
php artisan ui bootstrap --auth
Yetkilendirme iskelesi oluşturmak için komut isteminde aşağıdaki komutu çalıştırın. Görünüm .
php artisan ui vue --auth
Yetkilendirme iskelesi oluşturmak için komut isteminde aşağıdaki komutu çalıştırın. Tepki .
php artisan ui react --auth
8. Adım: Yeni iskeleyi kurarak derlemek için komut isteminde aşağıdaki iki komutu çalıştırın. npm bağımlılıkları .
npm install npm run dev
9. Adım: Aç AuthServiceProvider.php dosya Uygulama / Sağlayıcılar ve mevcut kodu aşağıda gösterildiği gibi değiştirin:
registerPolicies(); Gate::define('isAdmin', function($user) { return $user->role == 'admin'; }); Gate::define('isManager', function($user) { return $user->role == 'manager'; }); Gate::define('isUser', function($user) { return $user->role == 'user'; }); } }
Adım 10: Mevcut kodu değiştirin. home.blade.php dosya aşağıda gösterildiği gibi:
@extends('layouts.app') @section('content') {{ __('Dashboard') }} @if (session('status')) {{ session('status') }} @endif @can('isAdmin') I am an admin. @elsecan('isManager') I am a manager. @else I am a user. @endcan @endsection
11. Adım: Aşağıdaki URL'yi ziyaret edin, aşağıdaki ekran görüntüsüne benzer bir çıktı üretecektir. Ardından, sisteme birer birer yönetici, yönetici ve kullanıcı olarak giriş yapın.
Not : Aşağıdaki URL'ler sizinkinden farklı olabilir.
http: //authorization-tutorial.test/login
- Yönetici girişi
Olarak giriş yaptıysanız yönetici , ardından çıktı aşağıdaki ekran görüntüsüne benzer olacaktır.
- Yönetici girişi
Olarak oturum açtıysanız yönetici , ardından çıktı aşağıdaki ekran görüntüsüne benzer olacaktır.
- Kullanıcı Girişi
Olarak oturum açtıysanız kullanıcı , ardından çıktı aşağıdaki ekran görüntüsüne benzer olacaktır.
Laravel'de E-posta Gönderme
Mailtrap nedir
Laravel'de e-postaları test etmek için kullanabileceğiniz birkaç ücretsiz çevrimiçi araç vardır ve Posta tuzağı böyle bir araçtır. Mailtrap, e-postaları test etmek için sahte bir SMTP sunucusu kullanır. Yerel ana bilgisayardan gelen e-postaları, geliştiricinin veya test edenin e-postaların gerçek gelen kutularına gönderilmeden önce nasıl paylaşılacağını test etmesini sağlayan e-postaları kabul eder.
E-posta Gönderme Örneği
Şimdi basit bir örnek verelim Posta tuzağı .
Aşama 1: Adlı bir Laravel projesi oluşturmak için komut isteminde aşağıdaki komutu çalıştırın. e-posta öğretici .
composer create-project --prefer-dist laravel/laravel:^7.0 email-tutorial
Adım 2: Ziyaret edin URL ve yeni bir Mailtrap hesabı oluşturun veya zaten varsa Mailtrap hesabına giriş yapın.
Aşama 3: Mailtrap hesabına giriş yaptıktan sonra,
# 1) Tıklamak Demo Gelen Kutusu .
#iki) Tanımlayın Kullanıcı adı ve Parola altında SMTP . Bu kullanıcı adı ve şifre benzersizdir ve bunları bir sonraki adımda kullanacağız.
Not: Ziyaret edin URL Mailtrap hakkında daha fazla bilgi edinmek için.
4. Adım: Aç . env dosyanızı girin ve girin Posta tuzağı kullanıcı adı ve şifre.
MAIL_MAILER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME= enter your Mailtrap username here MAIL_PASSWORD= enter your Mailtrap password here MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=null MAIL_FROM_NAME='${APP_NAME}'
Adım 5: Aşağıdaki iki yolu ekleyin yollar / web.php dosya.
Route::get('/contact', 'ContactController@contact')->name('contact'); Route::post('/contact', 'ContactController@sendContactForm')->name('contact.send');
6. Adım: Oluşturmak için komut isteminde aşağıdaki komutu çalıştırın FileUploadController ve mevcut kodu aşağıda gösterildiği gibi değiştirin.
php artisan make: controller ContactController
validate($request, ( 'name' => 'required', 'email' => 'required|email', 'subject' => 'required', 'message' => 'required', )); $data = array( 'name' => $request->name, 'email' => $request->email, 'subject' => $request->subject, 'message' => $request->message, ); Mail::to('user@test.com')->send(new ContactMail($data)); return redirect()->back()->with('success', 'Your message was submitted successfully. Thank you!'); } }
7. Adım: Oluşturmak için komut isteminde aşağıdaki komutu çalıştırın İletişim sınıf. Bu komut adlı bir dosya oluşturacaktır. İletişim içinde Uygulama / Posta dizin.
php artisan make:mail ContactMail
8. Adım: Mevcut kodu değiştirin. İletişim dosya aşağıda gösterildiği gibi.
data = $data; } /** * Build the message. * * @return $this */ public function build() { return $this->from($this->data('email')) ->subject('Contact Form') ->view('contact-template')->with('data', $this->data); } }
9. Adım: Aşağıdaki görünüm dosyalarını oluşturun ve kodları ekleyin.
# 1) Oluştur contact.blade.php dosyasını açın ve aşağıdaki kodu ekleyin.
Contact Us @if (count($errors) > 0) @foreach ($errors->all() as $error) - {{ $error }}
@endforeach
@endif @if ($message = Session::get('success')) × {{ $message }} @endif Contact Us
@csrf Name Email Subject Message {{ old('message') }} Send
#iki) Oluştur contact-template.blade.php dosyasını açın ve aşağıdaki kodu ekleyin.
Name: {{ $data('name') }}
Subject: {{ $data('subject') }}
Message: {{ $data('message') }}
Adım 10: Aşağıdaki URL'yi ziyaret edin, aşağıdaki ekran görüntüsüne benzer bir çıktı üretecektir.
Not : Aşağıdaki URL sizinkinden farklı olabilir.
yönlendiricide ağ anahtarı nasıl bulunur
http: //email-tutorial.test/contact
11. Adım: Formu doldurun ve gönderin.
Adım 1/2: Şimdi ziyaret edin Posta tuzağı hesap ve gelen kutusunu kontrol edin. Gelen kutunuzda aşağıdaki ekran görüntüsüne benzer yeni bir mesaj göreceksiniz.
Sonuç
Laravel dosya yüklemesi kolaydır ve geliştirici ayrıca Laravel dosya izinlerini de ayarlayabilir. Laravel, oturum verilerini ayarlamak, almak ve silmek için kolay bir yol sağlar. Laravel kimlik doğrulaması, kullanıcıları tanımlamaya yardımcı olurken Laravel yetkilendirmesi, kimliği doğrulanmış kullanıcıların istenen kaynaklara erişim iznine sahip olup olmadığını doğrular.
E-postaları gerçek gelen kutularına göndermeden önce test etmek için Mailtrap gibi araçlar kullanabiliriz.
Bu öğreticiyi faydalı bulduğunuzu umuyoruz! Tartışacağımız bir sonraki eğitimde tekrar görüşmek dileğiyle Laravel dövme ve koleksiyonları .
İyi öğrenmeler!
<< PREV Tutorial | SONRAKİ Eğitim >>
Önerilen Kaynaklar
- Yeni Başlayanlar İçin PHP Laravel Eğitimi: Laravel Framework Nedir
- Laravel Koleksiyonu ve Laravel Forge Eğitimi
- Laravel Veritabanı, Göçler, Eloquent ORM ve Tinker
- Laravel Formları ve Örneklerle Doğrulama Kuralları
- Unix Dosya Erişim İzinleri: Unix Chmod, Chown ve Chgrp
- Unix İzinleri: Örneklerle Unix'te Dosya İzinleri
- Selenium Webdriver ile Dosya Yükleme - 3 Yöntem
- Unix'te Dosya Manipülasyonu: Unix Dosya Sistemine Genel Bakış