laravel session file upload download
Ta vadnica zajema Laravel Session, nalaganje datotek, prenos, dovoljenje za datoteke, preverjanje pristnosti in avtorizacijo Laravel, pošiljanje e-pošte itd. S primeri:
V Obrazci in pravila za preverjanje Laravel vadnica Serija vadnic Laravel , smo s primeri spoznavali različne elemente oblike.
Nadalje v tej vadnici smo razpravljali tudi o tem, kako nastavite, pridobite, izbrišite podatke seje v razdelkih Laravel in kako pošiljati e-pošto prek Mailtrap Podrobno.
Za vse primere smo uporabili Različica Laravel 7 .
kako natisniti matriko v obratnem vrstnem redu
Pogoji
V naših prejšnjih vajah smo to že obravnavali osnovne značilnosti Laravela , obdelava zbirk podatkov, in ravnanje z obrazci , in za boljše razumevanje te vadnice morate biti seznanjeni s temi temami.
Začnimo!
Kaj se boste naučili:
- Nalaganje datoteke Laravel
- Laravel seja
- Preverjanje pristnosti Laravel
- Pooblastilo Laravel
- Pošiljanje e-pošte v Laravel
- Zaključek
Nalaganje datoteke Laravel
Nalaganje datotek v Laravel je enostavno. Razvijalec lahko tudi določi Laravel dovoljenja za datoteke kot so vrste datotek, omejitve velikosti datotek, ki jih lahko uporabnik naloži itd.
Primer nalaganja datoteke Laravel
V tem primeru smo ustvarili preprost obrazec z validacijo za nalaganje datotek.
Korak 1: V ukaznem pozivu zaženite naslednji ukaz, da ustvarite projekt Laravel z imenom vadnica za nalaganje datotek .
composer create-project --prefer-dist laravel/laravel:^7.0 file-uploading-tutorial
2. korak: V mapo dodajte naslednji dve poti routes / web.php mapa.
Route::get('file/upload','FileUploadController@create')->name('file.create'); Route::post('file/upload','FileUploadController@store')->name('file.store');
3. korak: Zaženite naslednji ukaz v ukaznem pozivu za ustvarjanje FileUploadController in spremenite obstoječo kodo, kot je prikazano spodaj.
php artisan make: krmilnik 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. korak: Ustvarite datoteko pogleda z imenom create.blade.php in dodajte naslednjo kodo:
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
5. korak: Ustvarite mapo z imenom nalaganje datotek v javnosti mapo. To je mapa, v kateri so shranjene naložene datoteke.
6. korak: Obiščite naslednji URL in prikazal se bo rezultat, podoben spodnjemu posnetku zaslona.
Opomba : Naslednji URL se lahko razlikuje od vašega.
http: //file-uploading-tutorial.test/file/upload
7. korak: Zdaj lahko naložite veljavno datoteko in oddate obrazec. Preverite, ali je naložena datoteka shranjena v nalaganje datotek mapo. Lahko tudi poskusite naložiti neveljavno datoteko (datoteka z neveljavno vrsto datoteke in / ali velikostjo datoteke je presežena) in oddajte obrazec za preverjanje veljavnosti.
V zgornjem primeru lahko uporabnik odda le doc , docx , devetnajsti , csv, in pdf datoteke z največjo dovoljeno velikostjo 1024 bajtov .
Primer 1: Nalaganje datoteke pdf, ki je manjša od 1024 bajtov.
2. primer: Nalaganje slikovne datoteke (PNG, JPEG itd.).
3. primer: Nalaganje datoteke pdf, ki je večja od 1024 bajtov.
Laravel seja
TO sejo je vajen shranjevanje uporabniških podatkov v več uporabniških zahtevah . Pomaga sledite uporabnikom spletnega mesta . Konfiguracijo seje Laravel lahko izvedete v config / session.php mapa. Privzeto je gonilnik datotek se uporablja za obdelavo podatkov seje.
Pridobivanje podatkov seje Laravel
Najprej morate dobiti primerek seje, do katere je mogoče dostopati prek zahteve HTTP. Nato uporabite dobili () za dostop do podatkov.
$session_data = $request->session()->get('key');
Shranjevanje podatkov na seji Laravel
Obstajata dva načina za shranjevanje podatkov v seji.
# 1) Uporabljati dal () metoda - Ta metoda shranjuje podatke prek primerka zahteve.
$request->session()->put('key', 'value');
#two) Uporaba sejo pomočnik - ta metoda shranjuje podatke prek globalnega pomočnika.
session(('key' => 'value'));
Brisanje podatkov seje Laravel
The pozabil() metoda se uporablja za brisanje določenih podatkov iz seje.
$request->session()->forget(key);
The flush () metoda se uporablja za brisanje vseh podatkov iz seje.
Flash podatki z uporabo seje Laravel
The bliskavica () metoda se uporablja tudi za shranjevanje podatkov v seji, vendar je na voljo samo za naslednjo zahtevo HTTP.
$request->session()->flash('status', Successful!');
Primer seje Laravel
Naučimo se, kako set, get, in izbriši podatke seje z uporabo preprostega primera seje.
Korak 1: V ukaznem pozivu zaženite naslednji ukaz, da ustvarite projekt Laravel z imenom vadnica seje .
composer create-project --prefer-dist laravel/laravel:^7.0 session-tutorial
2. korak: V mapo dodajte naslednje tri poti routes / web.php mapa.
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');
3. korak: Zaženite naslednji ukaz v ukaznem pozivu za ustvarjanje SessionController in spremenite obstoječo kodo, kot je prikazano spodaj:
php artisan make: krmilnik 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. korak: Obiščite naslednje URL-je v danem vrstnem redu do nastavite , pojdi, in izbriši podatki seje.
Opomba : Naslednji URL-ji se lahko razlikujejo od vaših.
# 1) Obiščite naslednji URL na nastavite podatke seje .
http: //session-tutorial.test/session/set
Rezultat bo podoben spodnji sliki zaslona.
#two) Obiščite naslednji URL na pridobi podatke o seji .
http: //session-tutorial.test/session/get
Rezultat bo podoben spodnji sliki zaslona.
# 3) Obiščite naslednji URL na izbriši podatke seje .
http: //session-tutorial.test/session/delete
Rezultat bo podoben spodnji sliki zaslona.
# 4) Ko izbrišete podatke o seji, znova obiščite naslednji URL.
http: //session-tutorial.test/session/get
Rezultat bo podoben spodnji sliki zaslona.
Preverjanje pristnosti Laravel
Preverjanje pristnosti Laravel je preprosto. Navajeno je prepoznavanje uporabnikov . Običajno ga doseže prepoznavanje uporabniškega imena in gesla uporabnika . Če so uporabniške poverilnice opredeljene kot veljavne, naj bi bil uporabnik overjeni uporabnik .
The config / auth.php datoteka je konfiguracijska datoteka za preverjanje pristnosti. Preverjanje pristnosti Laravel je sestavljeno iz stražarji in ponudniki .
Stražarji: Določa način preverjanja pristnosti uporabnikov za vsako zahtevo.
Ponudniki: Določa, kako uporabniki pridobivajo iz vašega trajnega pomnilnika.
Poleg tega lahko po potrebi določite tudi dodatne ponudnike. Vendar ni treba spremeniti privzete konfiguracije preverjanja pristnosti.
Prosimo, upoštevajte, da v tej vadnici nismo podrobno razpravljali o stražah in ponudnikih.
Primer preverjanja pristnosti
V tem primeru smo ustvarili preprost sistem za avtorizacijo Laravel 7.
Korak 1: V ukaznem pozivu zaženite naslednji ukaz, da ustvarite projekt Laravel z imenom auth-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 auth-tutorial
2. korak: Projekt povežite z bazo podatkov in v ukaznem pozivu zaženite naslednji ukaz, da zaženete privzete selitve.
php artisan migrate
3. korak: Zaženite naslednji ukaz v ukaznem pozivu, da namestite Paket uporabniškega vmesnika Laravel .
composer require laravel/ui
4. korak: Naslednji korak je ustvarjanje auth odre s Zagon, pogled, ali Reagiraj . Lahko tečeš enega od naslednjih ukazov ustvariti avtorske odre.
Zaženite naslednji ukaz v ukaznem pozivu, da ustvarite avtentični oder z Bootstrap .
php artisan ui bootstrap --auth
Zaženite naslednji ukaz v ukaznem pozivu, da ustvarite avtentični oder z Pogled .
php artisan ui vue --auth
Zaženite naslednji ukaz v ukaznem pozivu, da ustvarite avtentični oder z Reagiraj .
php artisan ui react --auth
5. korak: Zaženite naslednja dva ukaza v ukaznem pozivu, da z namestitvijo sestavite svež oder npm odvisnosti .
npm install npm run dev
6. korak: Obiščite naslednje URL-je, da preizkusite preverjanje pristnosti z ustvarjanjem novega uporabnika (registracija novega uporabnika) in prijavo v sistem. Za preizkus preverjanja pristnosti lahko preizkusite veljavne in neveljavne podatke.
Opomba : Naslednji URL-ji se lahko razlikujejo od vaših.
Najprej morate registrirati novega uporabnika. Obiščite naslednji URL, da registrirate novega uporabnika, in prikazal se bo izhod, podoben spodnjemu posnetku zaslona.
http: //auth-tutorial.test/register
Po registraciji novega uporabnika se prijavite v sistem tako, da obiščete naslednji URL, in prikazal se bo izhod, podoben spodnjemu posnetku zaslona.
http: //auth-tutorial.test/login
Uspešna prijava bo uporabnika preusmerila na domača stran / nadzorna plošča kot je prikazano spodaj.
Pooblastilo Laravel
Preprosto povedano dovoljenje preveri, ali je overjeni uporabniki imajo potrebno dovoljenje za dostop do zahtevanih virov .
Primer dovoljenja
V tem primeru smo ustvarili preprost sistem za avtorizacijo Laravel 7.
Korak 1: V ukaznem pozivu zaženite naslednji ukaz, da ustvarite projekt Laravel z imenom pooblastilo-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 authorization-tutorial
2. korak: Projekt povežite z bazo podatkov.
3. korak: Zaženite naslednji ukaz v ukaznem pozivu, da ustvarite add_role_column_to_users_table migracijo in spremenite obstoječo kodo, kot je prikazano spodaj:
php obrtnik make: migracija 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. korak: Zaženite naslednji ukaz v ukaznem pozivu, da zaženete vse selitve.
php artisan migrate
5. korak: Vzorec podatkov dodajte v Uporabniki tabela z uporabo Tinker kot je prikazano spodaj:
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. korak: Zaženite naslednji ukaz v ukaznem pozivu, da namestite Paket uporabniškega vmesnika Laravel .
composer require laravel/ui
7. korak: Naslednji korak je ustvarjanje auth odre s Zagon, pogled, ali Reagiraj . Lahko tečeš enega od naslednjih ukazov ustvariti avtorske odre.
Zaženite naslednji ukaz v ukaznem pozivu, da ustvarite avtentični oder z Bootstrap .
php artisan ui bootstrap --auth
Zaženite naslednji ukaz v ukaznem pozivu, da ustvarite avtentični oder z Pogled .
php artisan ui vue --auth
Zaženite naslednji ukaz v ukaznem pozivu, da ustvarite avtentični oder z Reagiraj .
php artisan ui react --auth
8. korak: Zaženite naslednja dva ukaza v ukaznem pozivu, da z namestitvijo sestavite svež oder npm odvisnosti .
npm install npm run dev
9. korak: Odprite AuthServiceProvider.php datoteka na Aplikacije / ponudniki in spremenite obstoječo kodo, kot je prikazano spodaj:
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'; }); } }
10. korak: Spremenite obstoječo kodo v home.blade.php datoteka, kot je prikazano spodaj:
@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. korak: Obiščite naslednji URL in prikazal se bo rezultat, podoben spodnjemu posnetku zaslona. Nato se v sistem prijavite kot skrbnik, skrbnik in uporabnik posebej.
Opomba : Naslednji URL-ji se lahko razlikujejo od vaših.
http: //authorization-tutorial.test/login
- Prijava za skrbnika
Če ste prijavljeni kot skrbnik , potem bo rezultat podoben naslednjem posnetku zaslona.
- Prijava upravitelja
Če ste prijavljeni kot vodja , potem bo rezultat podoben naslednjem posnetku zaslona.
- Prijava uporabnika
Če ste prijavljeni kot uporabnik , potem bo rezultat podoben naslednjem posnetku zaslona.
Pošiljanje e-pošte v Laravel
Kaj je Mailtrap
Na voljo je več brezplačnih spletnih orodij za preizkušanje e-poštnih sporočil v Laravel in Mailtrap je eno takšnih orodij. Mailtrap za preskušanje e-pošte uporablja ponarejen strežnik SMTP. Sprejema e-pošto lokalnega gostitelja, ki razvijalcu ali preizkuševalcu omogoča, da preskusi, kako se bodo e-poštna sporočila delila, preden jih pošlje v resnične mape »Prejeto«.
Primer pošiljanja e-pošte
Naredimo preprost primer z uporabo Mailtrap .
Korak 1: V ukaznem pozivu zaženite naslednji ukaz, da ustvarite projekt Laravel z imenom e-poštna vadnica .
composer create-project --prefer-dist laravel/laravel:^7.0 email-tutorial
2. korak: Obiščite URL in ustvarite nov račun Mailtrap ali se prijavite v račun Mailtrap, če ga že imate.
3. korak: Po prijavi v račun Mailtrap
# 1) Kliknite na Predstavitvena mapa Prejeto .
#two) Določite Uporabniško ime in Geslo Spodaj SMTP . To uporabniško ime in geslo sta edinstvena in jih bomo uporabili v naslednjem koraku.
Opomba: Obiščite URL če želite izvedeti več o Mailtrapu.
4. korak: Odprite. env datoteko in vnesite Mailtrap uporabniško ime in geslo.
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}'
5. korak: V mapo dodajte naslednji dve poti routes / web.php mapa.
Route::get('/contact', 'ContactController@contact')->name('contact'); Route::post('/contact', 'ContactController@sendContactForm')->name('contact.send');
6. korak: Zaženite naslednji ukaz v ukaznem pozivu za ustvarjanje FileUploadController in spremenite obstoječo kodo, kot je prikazano spodaj.
php artisan make: krmilnik 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. korak: Zaženite naslednji ukaz v ukaznem pozivu za ustvarjanje ContactMail razred. Ta ukaz bo ustvaril datoteko z imenom ContactMail.php v Aplikacija / pošta imenik.
php artisan make:mail ContactMail
8. korak: Spremenite obstoječo kodo v ContactMail.php datoteko, kot je prikazano spodaj.
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. korak: Ustvarite naslednje datoteke pogleda in dodajte kode.
# 1) Ustvari contact.blade.php datoteko in dodajte naslednjo kodo.
brezplačno čistilo sistema za Windows 7
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
#two) Ustvari contact-template.blade.php datoteko in dodajte naslednjo kodo.
Name: {{ $data('name') }}
Subject: {{ $data('subject') }}
Message: {{ $data('message') }}
10. korak: Obiščite naslednji URL in prikazal se bo rezultat, podoben spodnjemu posnetku zaslona.
Opomba : Naslednji URL se lahko razlikuje od vašega.
http: //email-tutorial.test/contact
11. korak: Izpolnite obrazec in oddajte.
12. korak: Zdaj pa obiščite svoj Mailtrap račun in preverite mapo Prejeto. V mapi »Prejeto« boste videli novo sporočilo, podobno spodnjemu posnetku zaslona.
Zaključek
Nalaganje datotek Laravel je enostavno, razvijalec pa lahko nastavi tudi dovoljenja za datoteke Laravel. Laravel ponuja enostaven način nastavljanja, pridobivanja in brisanja podatkov sej. Preverjanje pristnosti Laravel pomaga prepoznati uporabnike, medtem ko pooblastilo Laravel preveri, ali imajo overjeni uporabniki dovoljenje za dostop do zahtevanih virov.
Orodja, kot je Mailtrap, lahko uporabimo za testiranje e-poštnih sporočil, preden jih pošljemo v dejanske nabiralnike.
Upamo, da vam je bila ta vadnica v pomoč! Upam, da se spet vidimo v naslednji vadnici, kjer bomo razpravljali Kovačnica Laravel in zbirke .
Srečno učenje!
<< PREV Tutorial | NASLEDNJA Vadnica >>
Priporočeno branje
- PHP Laravel Vadnica za začetnike: kaj je Laravel Framework
- Zbirka Laravel in vadnica Laravel Forge
- Baza podatkov Laravel, selitve, zgovoren ORM in Tinker
- Obrazci in pravila za preverjanje Laravel s primerom
- Dovoljenja za dostop do datotek Unix: Unix Chmod, Chown in Chgrp
- Dovoljenja Unix: Dovoljenja datotek v Unixu s primeri
- Kako naložiti datoteko s pomočjo Selenium Webdriver - 3 metode
- Manipulacija z datotekami v Unixu: Pregled datotečnega sistema Unix