laravel session file upload download
Tento výukový program sa zaoberá reláciou laravel, nahrávaním, sťahovaním, povolením súborov, autentifikáciou a autorizáciou laravel, odosielaním e-mailov atď. S príkladmi:
V Laravelské formuláre a overovacie pravidlá návod na Laravel Výukový program , dozvedeli sme sa o rôznych tvarových prvkoch pomocou príkladov.
Ďalej v tomto výučbe sme tiež diskutovali o tom, ako na to nastaviť, získať, vymazať údaje relácie v rámci relácií Laravel a ako posielať e-maily prostredníctvom Poštová pasca podrobne.
Pre všetky príklady sme použili Laravel verzia 7 .
príkazy unixu s príkladmi a syntaxou
Predpoklady
V našich predchádzajúcich tutoriáloch sme sa zaoberali základné vlastnosti Laravelu , manipulácia s databázou, a manipulácia s formulármi , a musíte byť oboznámení s týmito témami, aby ste lepšie pochopili tento návod.
Poďme začať!
Čo sa dozviete:
- Nahrávanie súborov laravel
- Laravelské zasadnutie
- Laravelova autentifikácia
- Laravel oprávnenie
- Posielanie e-mailov v laravel
- Záver
Nahrávanie súborov laravel
Nahrávanie súborov do Laravelu je jednoduché. Vývojár môže tiež určiť Laravel povolenie súborov ako sú typy súborov, obmedzenia veľkosti súborov, ktoré môže používateľ nahrať, atď.
Príklad odovzdania laravel súboru
V tomto príklade sme vytvorili jednoduchý formulár s validáciou na nahrávanie súborov.
Krok 1: Spustením nasledujúceho príkazu v príkazovom riadku vytvorte projekt Laravel s názvom návod na nahrávanie súborov .
composer create-project --prefer-dist laravel/laravel:^7.0 file-uploading-tutorial
Krok 2: Pridajte nasledujúce dve trasy k trasy / web.php spis.
Route::get('file/upload','FileUploadController@create')->name('file.create'); Route::post('file/upload','FileUploadController@store')->name('file.store');
Krok 3: Spustením nasledujúceho príkazu v príkazovom riadku vytvorte FileUploadController a upravte existujúci kód, ako je uvedené nižšie.
php artisan make: controller 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); } }
Krok 4: Vytvorte súbor zobrazenia s názvom create.blade.php a pridajte nasledujúci kód:
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
Krok 5: Vytvorte priečinok s názvom nahrávanie súborov v verejné priečinok. Je to priečinok, v ktorom sú uložené nahrané súbory.
Krok 6: Navštívte nasledujúcu adresu URL a vygeneruje výstup podobný nasledujúcemu obrázku obrazovky.
Poznámka : Nasledujúca adresa URL sa môže líšiť od vašej.
http: //file-uploading-tutorial.test/file/upload
Krok 7: Teraz môžete nahrať platný súbor a odoslať formulár. Overte, či je nahraný súbor uložený v priečinku nahrávanie súborov priečinok. Môžete sa tiež pokúsiť nahrať neplatný súbor (súbor s neplatným súborom s prekročeným typom alebo veľkosťou súboru) a odoslať formulár na kontrolu overenia.
Vo vyššie uvedenom príklade má používateľ povolené iba odoslanie doc , docx , devätnásty , CSV, a pdf súbory s maximálnou veľkosťou 1024 bajtov .
Príklad 1: Nahráva sa súbor PDF, ktorý je menší ako 1024 bajtov.
Príklad 2: Nahráva sa obrazový súbor (PNG, JPEG atď.).
Príklad 3: Nahráva sa súbor PDF s veľkosťou viac ako 1024 bajtov.
Laravelské zasadnutie
TO zasadanie je zvyknutý ukladať používateľské údaje vo viacerých požiadavkách . Pomáha to sledovať používateľov webových stránok . Konfiguráciu laravel relácie je možné vykonať v config / session.php spis. V predvolenom nastavení je ovládač súboru sa používa na spracovanie údajov relácie.
Načítanie údajov o laravel relácii
Najskôr musíte získať inštanciu relácie, ku ktorej je možné získať prístup prostredníctvom požiadavky HTTP. Potom použite dostať () metóda prístupu k údajom.
$session_data = $request->session()->get('key');
Ukladanie dát v laravel relácii
Existujú dva spôsoby ukladania údajov do relácie.
# 1) Pomocou put () metóda - Táto metóda ukladá údaje prostredníctvom inštancie požiadavky.
$request->session()->put('key', 'value');
#dva) Použitím zasadanie pomocník - táto metóda ukladá údaje prostredníctvom globálneho pomocníka.
session(('key' => 'value'));
Vymazanie údajov o relácii laravel
The Zabudol() metóda sa používa na odstránenie konkrétnych údajov z relácie.
$request->session()->forget(key);
The spláchnuť() metóda slúži na odstránenie všetkých údajov z relácie.
Flashové dáta pomocou laravel relácie
The blesk () metóda sa tiež používa na ukladanie údajov v relácii, ale je k dispozícii iba pre ďalšiu požiadavku HTTP.
$request->session()->flash('status', Successful!');
Príklad laravel relácie
Poďme sa naučiť, ako na to nastaviť, dostať, a vymazať údaje relácie pomocou jednoduchého príkladu relácie.
Krok 1: Spustením nasledujúceho príkazu v príkazovom riadku vytvorte projekt Laravel s názvom lekcia relácie .
composer create-project --prefer-dist laravel/laravel:^7.0 session-tutorial
Krok 2: Pridajte nasledujúce tri trasy do trasy / web.php spis.
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');
Krok 3: Spustením nasledujúceho príkazu v príkazovom riadku vytvorte SessionController a upravte existujúci kód, ako je uvedené nižšie:
php artisan make: controller 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.'; } }
Krok 4: Navštívte nasledujúce adresy URL v danom poradí na nastaviť , dostať, a vymazať údaje relácie.
Poznámka : Nasledujúce adresy URL sa môžu líšiť od tých vašich.
# 1) Navštívte nasledujúcu adresu URL na adrese nastaviť dáta relácie .
http: //session-tutorial.test/session/set
Produkuje výstup podobný nasledujúcemu obrázku.
#dva) Navštívte nasledujúcu adresu URL na adrese získať údaje o relácii .
http: //session-tutorial.test/session/get
Produkuje výstup podobný nasledujúcemu obrázku.
# 3) Navštívte nasledujúcu adresu URL na adrese vymazať údaje relácie .
http: //session-tutorial.test/session/delete
Produkuje výstup podobný nasledujúcemu obrázku.
# 4) Po odstránení údajov o relácii znova navštívte nasledujúcu adresu URL.
http: //session-tutorial.test/session/get
Produkuje výstup podobný nasledujúcemu obrázku.
Laravelova autentifikácia
Laravelská autentifikácia je jednoduchá. Je zvyknutý identifikovať používateľov . Spravidla sa to dosiahne identifikáciu používateľského mena a hesla používateľa . Ak sú prihlasovacie údaje používateľa identifikované ako platné, potom sa o používateľovi hovorí, že autentifikovaný užívateľ .
The config / auth.php súbor je konfiguračný súbor autentifikácie. Laravelská autentifikácia pozostáva z stráže a poskytovatelia .
Stráže: Definuje spôsob autentifikácie používateľov pre každú požiadavku.
Poskytovatelia: Definuje, ako sa používatelia získavajú z vášho trvalého úložiska.
Ďalej môžete podľa potreby definovať ďalších poskytovateľov. Nemusí však meniť predvolenú konfiguráciu autentifikácie.
Vezmite prosím na vedomie, že v tomto tutoriále sme podrobne nerozoberali stráže a poskytovateľov.
Príklad autentifikácie
V tomto príklade sme vytvorili jednoduchý systém autorizácie Laravel 7.
Krok 1: Spustením nasledujúceho príkazu v príkazovom riadku vytvorte projekt Laravel s názvom auth-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 auth-tutorial
Krok 2: Pripojte svoj projekt k databáze a v príkazovom riadku spustite nasledujúci príkaz, aby ste spustili predvolené migrácie.
php artisan migrate
Krok 3: Spustením nasledujúceho príkazu v príkazovom riadku nainštalujte Balík používateľského rozhrania laravel .
composer require laravel/ui
Krok 4: Ďalším krokom je generovanie autorské lešenie s Bootstrap, Zobraziť, alebo Reagovať . Môžeš bežať jeden z nasledujúcich príkazov vytvoriť oprávnenie lešenia.
Spustením nasledujúceho príkazu v príkazovom riadku vygenerujte operačné lešenie pomocou Bootstrap .
php artisan ui bootstrap --auth
Spustením nasledujúceho príkazu v príkazovom riadku vygenerujte operačné lešenie pomocou vyhliadka .
php artisan ui vue --auth
Spustením nasledujúceho príkazu v príkazovom riadku vygenerujte operačné lešenie pomocou Reagovať .
php artisan ui react --auth
Krok 5: Spustením nasledujúcich dvoch príkazov v príkazovom riadku nainštalujte nové lešenie npm závislosti .
npm install npm run dev
Krok 6: Navštívte nasledujúce adresy URL a otestujte autentifikáciu vytvorením nového používateľa (registrácia nového používateľa) a prihlásením do systému. Na vyskúšanie autentifikácie môžete vyskúšať platné aj neplatné údaje.
Poznámka : Nasledujúce adresy URL sa môžu líšiť od tých vašich.
Najprv musíte zaregistrovať nového používateľa. Navštívte nasledujúcu adresu URL a zaregistrujte nového používateľa. Vytvorí sa výstup podobný nasledujúcemu obrázku obrazovky.
http: //auth-tutorial.test/register
Po registrácii nového používateľa sa prihláste do systému na nasledujúcej adrese URL a vytvorí sa výstup podobný nasledujúcemu obrázku obrazovky.
http: //auth-tutorial.test/login
Úspešné prihlásenie presmeruje používateľa na server domovská stránka / palubná doska ako je uvedené nižšie.
Laravel oprávnenie
Jednoducho povedané povolenie overuje, či autentifikovaní používatelia majú potrebné povolenie na prístup k požadovaným zdrojom .
Príklad autorizácie
V tomto príklade sme vytvorili jednoduchý autorizačný systém Laravel 7.
Krok 1: Spustením nasledujúceho príkazu v príkazovom riadku vytvorte projekt Laravel s názvom autorizačný návod .
composer create-project --prefer-dist laravel/laravel:^7.0 authorization-tutorial
Krok 2: Pripojte svoj projekt k databáze.
Krok 3: Spustením nasledujúceho príkazu v príkazovom riadku vytvorte add_role_column_to_users_table migráciu a upravte existujúci kód, ako je uvedené nižšie:
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) { // }); } }
Krok 4: Spustením nasledujúceho príkazu v príkazovom riadku spustíte všetky migrácie.
php artisan migrate
Krok 5: Pridajte vzorové údaje do súboru Používatelia stôl pomocou drotár ako je uvedené nižšie:
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
Krok 6: Spustením nasledujúceho príkazu v príkazovom riadku nainštalujte Balík používateľského rozhrania laravel .
composer require laravel/ui
Krok 7: Ďalším krokom je generovanie autorské lešenie s Bootstrap, Zobraziť, alebo Reagovať . Môžeš bežať jeden z nasledujúcich príkazov vytvoriť oprávnenie lešenia.
Spustením nasledujúceho príkazu v príkazovom riadku vygenerujte operačné lešenie pomocou Bootstrap .
php artisan ui bootstrap --auth
Spustením nasledujúceho príkazu v príkazovom riadku vygenerujte operačné lešenie pomocou vyhliadka .
php artisan ui vue --auth
Spustením nasledujúceho príkazu v príkazovom riadku vygenerujte operačné lešenie pomocou Reagovať .
php artisan ui react --auth
Krok 8: Spustením nasledujúcich dvoch príkazov v príkazovom riadku nainštalujte nové lešenie npm závislosti .
npm install npm run dev
Krok 9: Otvor AuthServiceProvider.php podať na Aplikácia / Poskytovatelia a upravte existujúci kód, ako je uvedené nižšie:
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'; }); } }
Krok 10: Upravte existujúci kód v home.blade.php súbor, ako je uvedené nižšie:
@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
Krok 11: Navštívte nasledujúcu adresu URL a vygeneruje výstup podobný nasledujúcemu obrázku obrazovky. Potom sa do systému prihláste ako správca, správca a užívateľ po jednom.
Poznámka : Nasledujúce adresy URL sa môžu líšiť od tých vašich.
http: //authorization-tutorial.test/login
- Prihlásenie správcu
Ak ste prihlásený ako admin , potom bude výstup podobný nasledujúcemu obrázku obrazovky.
- Prihlásenie správcu
Ak ste prihlásený ako manažér , potom bude výstup podobný nasledujúcemu obrázku obrazovky.
- Prihlásenie užívateľa
Ak ste prihlásený ako používateľ , potom bude výstup podobný nasledujúcemu obrázku obrazovky.
Posielanie e-mailov v laravel
Čo je Mailtrap
Existuje niekoľko bezplatných online nástrojov na testovanie e-mailov v službe Laravel a Poštová pasca je jedným z takýchto nástrojov. Mailtrap používa na testovanie e-mailov falošný server SMTP. Prijíma e-maily od miestneho hostiteľa, čo vývojárom alebo testerom umožňuje otestovať, ako sa budú e-maily zdieľať, skôr ako ich pošle do skutočných doručených.
Príklad odosielania e-mailov
Ukážme si jednoduchý príklad Poštová pasca .
Krok 1: Spustením nasledujúceho príkazu v príkazovom riadku vytvorte projekt Laravel s názvom e-mailový návod .
composer create-project --prefer-dist laravel/laravel:^7.0 email-tutorial
Krok 2: Navštíviť URL a vytvorte nový účet Mailtrap alebo sa prihláste do účtu Mailtrap, ak už taký máte.
Krok 3: Po prihlásení do účtu Mailtrap,
# 1) Kliknite na Demo Inbox .
#dva) Identifikujte Užívateľské meno a Heslo pod SMTP . Toto používateľské meno a heslo sú jedinečné a použijeme ich v ďalšom kroku.
Poznámka: Navštíviť URL vedieť viac o Mailtrape.
Krok 4: Otvor . env súbor a zadajte svoj Poštová pasca užívateľské meno a heslo.
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}'
Krok 5: Pridajte nasledujúce dve trasy k trasy / web.php spis.
Route::get('/contact', 'ContactController@contact')->name('contact'); Route::post('/contact', 'ContactController@sendContactForm')->name('contact.send');
Krok 6: Spustením nasledujúceho príkazu v príkazovom riadku vytvorte FileUploadController a upravte existujúci kód, ako je uvedené nižšie.
php artisan make: kontrolér 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!'); } }
Krok 7: Spustením nasledujúceho príkazu v príkazovom riadku vytvorte ContactMail trieda. Tento príkaz vytvorí súbor s názvom ContactMail.php v Aplikácia / Pošta adresár.
php artisan make:mail ContactMail
Krok 8: Upravte existujúci kód v ContactMail.php súbor, ako je uvedené nižšie.
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); } }
Krok 9: Vytvorte nasledujúce súbory zobrazenia a pridajte kódy.
# 1) Vytvorte contact.blade.php súbor a pridajte nasledujúci kód.
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
#dva) Vytvorte contact-template.blade.php súbor a pridajte nasledujúci kód.
Name: {{ $data('name') }}
Subject: {{ $data('subject') }}
Message: {{ $data('message') }}
Krok 10: Navštívte nasledujúcu adresu URL a vygeneruje výstup podobný nasledujúcemu obrázku obrazovky.
Poznámka : Nasledujúca adresa URL sa môže líšiť od vašej.
http: //email-tutorial.test/contact
Krok 11: Vyplňte formulár a odošlite.
Krok 12: Teraz navštívte svoju Poštová pasca účet a skontrolujte doručenú poštu. V doručenej pošte uvidíte novú správu podobnú snímke obrazovky uvedenej nižšie.
ako nastaviť bránu firewall v sieti
Záver
Nahrávanie súborov laravel je ľahké a vývojár môže tiež nastaviť oprávnenia súborov laravel. Laravel poskytuje jednoduchý spôsob nastavenia, získania a odstránenia údajov o relácii. Laravelská autentifikácia pomáha identifikovať používateľov, zatiaľ čo Laravelova autorizácia overuje, či majú autentifikovaní používatelia povolenie na prístup k požadovaným prostriedkom.
Na otestovanie e-mailov pred ich odoslaním do skutočnej doručenej pošty môžeme použiť nástroje ako Mailtrap.
Dúfame, že vám tento návod pomohol! Dúfam, že sa opäť uvidíme v ďalšom návode, kde budeme diskutovať Larová kovárna a zbierky .
Šťastné učenie!
<< PREV Tutorial | ĎALŠÍ výukový program >>
Odporúčané čítanie
- Výukový program pre laravel PHP pre začiatočníkov: Čo je to Laravel Framework
- Výukový program Laravel Collection and Laravel Forge
- Laravel Databáza, migrácie, výrečný ORM a Tinker
- Laravelské formuláre a overovacie pravidlá s príkladom
- Povolenia na prístup k súborom v systéme Unix: Unix Chmod, Chown a Chgrp
- Povolenia Unixu: Povolenia súborov v systéme Unix s príkladmi
- Ako nahrať súbor pomocou selénového webového ovládača - 3 metódy
- Manipulácia so súbormi v systéme Unix: Prehľad systému súborov Unix