laravel session file upload download
Acest tutorial acoperă sesiunea Laravel, încărcarea fișierelor, descărcarea, permisiunea fișierelor, autentificarea și autorizarea Laravel, trimiterea de e-mailuri etc. cu exemple:
În Formulare Laravel și reguli de validare tutorial de Seria Laravel Tutorial , am aflat despre diferite elemente de formă cu exemple.
Mai departe în acest tutorial, am discutat și despre cum să setați, obțineți, ștergeți datele sesiunii în cadrul sesiunilor Laravel și cum să trimiteți e-mailuri prin Mailtrap detaliat.
Pentru toate exemplele, am folosit Versiunea Laravel 7 .
convertiți char în int c ++
Condiții prealabile
În tutorialele noastre anterioare, am acoperit caracteristici de bază ale Laravel , gestionarea bazei de date, și manipularea formularelor , și trebuie să vă familiarizați cu aceste subiecte pentru o mai bună înțelegere a acestui tutorial.
Sa incepem!
Ce veți învăța:
- Încărcare fișier Laravel
- Sesiunea Laravel
- Autentificare Laravel
- Autorizație Laravel
- Trimiterea de e-mailuri în Laravel
- Concluzie
Încărcare fișier Laravel
Încărcarea fișierelor în Laravel este ușoară. Dezvoltatorul poate specifica, de asemenea Laravel permisiuni de fișiere precum tipurile de fișiere, limitele de dimensiune ale fișierelor care pot fi încărcate de utilizator etc.
Exemplu de încărcare a fișierului Laravel
În acest exemplu, am creat un formular simplu cu validare pentru a încărca fișiere.
Pasul 1: Rulați următoarea comandă în promptul de comandă pentru a crea un proiect Laravel numit tutorial pentru încărcarea fișierelor .
composer create-project --prefer-dist laravel/laravel:^7.0 file-uploading-tutorial
Pasul 2: Adăugați următoarele două rute la rute / web.php fişier.
Route::get('file/upload','FileUploadController@create')->name('file.create'); Route::post('file/upload','FileUploadController@store')->name('file.store');
Pasul 3: Rulați următoarea comandă în promptul de comandă pentru a crea FileUploadController și modificați codul existent așa cum se arată mai jos.
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); } }
Pasul 4: Creați un fișier de vizualizare numit create.blade.php și adăugați următorul cod:
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
Pasul 5: Creați un folder numit încărcări de fișiere în public pliant. Este folderul în care sunt stocate fișierele încărcate.
Pasul 6: Accesați următoarea adresă URL și va produce o ieșire similară cu imaginea de mai jos.
Notă : Următoarea adresă URL poate diferi de a dvs.
http: //file-uploading-tutorial.test/file/upload
Pasul 7: Acum, puteți încărca un fișier valid și trimite formularul. Verificați dacă fișierul încărcat este stocat în încărcări de fișiere pliant. De asemenea, puteți încerca să încărcați un fișier nevalid (fișier cu un tip de fișier nevalid și / sau limită de dimensiune depășită) și să trimiteți formularul pentru a verifica validarea.
În exemplul de mai sus, utilizatorul are permisiunea de a trimite numai doc , docx , xlx , CSV, și pdf fișiere cu o dimensiune maximă de 1024 octeți .
Exemplul 1: Încărcarea unui fișier pdf cu o dimensiune mai mică de 1024 octeți.
Exemplul 2: Încărcarea unui fișier imagine (PNG, JPEG etc.).
Exemplul 3: Încărcarea unui fișier pdf cu o dimensiune mai mare de 1024 octeți.
Sesiunea Laravel
LA sesiune este obișnuit stocați datele utilizatorilor pe mai multe cereri ale utilizatorilor . Ajută la urmăriți utilizatorii site-ului web . Configurarea sesiunii Laravel se poate face în config / session.php fişier. În mod implicit, fișierul driver de fișier este utilizat pentru a gestiona datele sesiunii.
Preluarea datelor sesiunii Laravel
Mai întâi, trebuie să obțineți o instanță a unei sesiuni care poate fi accesată printr-o cerere HTTP. Apoi, utilizați obține() metoda de accesare a datelor.
$session_data = $request->session()->get('key');
Stocarea datelor în sesiunea Laravel
Există două moduri de stocare a datelor într-o sesiune.
# 1) Folosind a pune() metodă - Această metodă stochează date printr-o instanță de solicitare.
$request->session()->put('key', 'value');
#Două) Folosind sesiune helper - Această metodă stochează date prin intermediul helperului global.
session(('key' => 'value'));
Ștergerea datelor sesiunii Laravel
uitat() metoda este utilizată pentru a șterge date specifice din sesiune.
$request->session()->forget(key);
culoare() metoda este utilizată pentru a șterge toate datele din sesiune.
Date Flash folosind sesiunea Laravel
flash () metoda este, de asemenea, utilizată pentru a stoca date într-o sesiune, dar disponibilă numai pentru următoarea solicitare HTTP.
$request->session()->flash('status', Successful!');
Exemplu de sesiune Laravel
Să învățăm cum stabiliți, obțineți, și șterge date de sesiune utilizând un exemplu simplu de sesiune.
Pasul 1: Rulați următoarea comandă în promptul de comandă pentru a crea un proiect Laravel numit sesiune-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 session-tutorial
Pasul 2: Adăugați următoarele trei rute în rute / web.php fişier.
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');
Pasul 3: Rulați următoarea comandă în promptul de comandă pentru a crea SessionController și modificați codul existent așa cum se arată mai jos:
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.'; } }
Pasul 4: Accesați următoarele adrese URL în ordinea dată la a stabilit , obține, și șterge datele sesiunii.
Notă : Următoarele adrese URL pot diferi de ale dvs.
# 1) Accesați următoarea adresă URL la setați datele sesiunii .
http: //session-tutorial.test/session/set
Va produce o ieșire similară cu imaginea de mai jos.
#Două) Accesați următoarea adresă URL la obțineți date despre sesiune .
http: //session-tutorial.test/session/get
Va produce o ieșire similară cu imaginea de mai jos.
# 3) Accesați următoarea adresă URL la ștergeți datele sesiunii .
http: //session-tutorial.test/session/delete
Va produce o ieșire similară cu imaginea de mai jos.
# 4) După ștergerea datelor sesiunii, revizitați următoarea adresă URL.
http: //session-tutorial.test/session/get
Va produce o ieșire similară cu imaginea de mai jos.
Autentificare Laravel
Autentificarea Laravel este simplă. Este obișnuit identificați utilizatorii . De obicei, se realizează prin identificarea numelui de utilizator și a parolei utilizatorului . Dacă acreditările de utilizator sunt identificate ca valide, atunci se spune că utilizatorul este un utilizator autentificat .
config / auth.php fișier este fișierul de configurare a autentificării. Autentificarea Laravel constă din paznici și furnizori .
Paznici: Acesta definește modul în care utilizatorii sunt autentificați pentru fiecare solicitare.
Furnizori: Acesta definește modul în care utilizatorii sunt preluați din stocarea dvs. persistentă.
Mai mult, puteți defini furnizori suplimentari, după cum este necesar. Cu toate acestea, nu trebuie să schimbe configurația implicită de autentificare.
Vă rugăm să rețineți că nu am discutat în detaliu despre paznici și furnizori în acest tutorial.
Exemplu de autentificare
În acest exemplu, am creat un sistem de autentificare Laravel 7 simplu.
Pasul 1: Rulați următoarea comandă în promptul de comandă pentru a crea un proiect Laravel numit autentificare-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 auth-tutorial
Pasul 2: Conectați-vă proiectul la baza de date și rulați următoarea comandă în promptul de comandă pentru a rula migrările implicite.
php artisan migrate
Pasul 3: Rulați următoarea comandă în promptul de comandă pentru a instala fișierul Pachet Laravel UI .
composer require laravel/ui
Pasul 4: Următorul pas este de a genera schele de autentificare cu Bootstrap, Vizualizare, sau Reacţiona . Poți fugi una dintre următoarele comenzi pentru a crea schele de autentificare.
Rulați următoarea comandă în promptul de comandă pentru a genera schele de autentificare cu Bootstrap .
php artisan ui bootstrap --auth
Rulați următoarea comandă în promptul de comandă pentru a genera schele de autentificare cu Vedere .
php artisan ui vue --auth
Rulați următoarea comandă în promptul de comandă pentru a genera schele de autentificare cu Reacţiona .
php artisan ui react --auth
Pasul 5: Rulați următoarele două comenzi în promptul de comandă pentru a compila schela nouă prin instalare dependențe npm .
npm install npm run dev
Pasul 6: Accesați următoarele adrese URL pentru a testa autentificarea prin crearea unui utilizator nou (înregistrarea unui utilizator nou) și conectarea la sistem. Puteți încerca atât date valide, cât și date nevalide pentru a testa autentificarea.
Notă : Următoarele adrese URL pot diferi de ale dvs.
În primul rând, trebuie să înregistrați un nou utilizator. Accesați următoarea adresă URL pentru a înregistra un utilizator nou și va produce o ieșire similară cu captura de ecran de mai jos.
http: //auth-tutorial.test/register
După înregistrarea unui nou utilizator, conectați-vă la sistem vizitând următoarea adresă URL și va produce o ieșire similară cu captura de ecran de mai jos.
http: //auth-tutorial.test/login
O autentificare reușită va redirecționa utilizatorul către pagina de pornire / tabloul de bord așa cum se arată mai jos.
Autorizație Laravel
In termeni simpli, autorizare verifică dacă utilizatorii autentificați au permisiunea necesară pentru a accesa resursele solicitate .
Exemplu de autorizare
În acest exemplu, am creat un sistem de autorizare Laravel 7 simplu.
Pasul 1: Rulați următoarea comandă în promptul de comandă pentru a crea un proiect Laravel numit autorizare-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 authorization-tutorial
Pasul 2: Conectați-vă proiectul la baza de date.
Pasul 3: Rulați următoarea comandă în promptul de comandă pentru a crea fișierul add_role_column_to_users_table migrați și modificați codul existent așa cum se arată mai jos:
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) { // }); } }
Pasul 4: Rulați următoarea comandă în promptul de comandă pentru a rula toate migrațiile.
php artisan migrate
Pasul 5: Adăugați date eșantion la Utilizatori masa folosind cositori așa cum se arată mai jos:
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
Pasul 6: Rulați următoarea comandă în promptul de comandă pentru a instala fișierul Pachet Laravel UI .
composer require laravel/ui
Pasul 7: Următorul pas este de a genera schele de autentificare cu Bootstrap, Vizualizare, sau Reacţiona . Poți fugi una dintre următoarele comenzi pentru a crea schele de autentificare.
Rulați următoarea comandă în promptul de comandă pentru a genera schele de autentificare cu Bootstrap .
php artisan ui bootstrap --auth
Rulați următoarea comandă în promptul de comandă pentru a genera schele de autentificare cu Vedere .
php artisan ui vue --auth
Rulați următoarea comandă în promptul de comandă pentru a genera schele de autentificare cu Reacţiona .
php artisan ui react --auth
Pasul 8: Rulați următoarele două comenzi în promptul de comandă pentru a compila schela nouă prin instalare dependențe npm .
npm install npm run dev
Pasul 9: Deschide AuthServiceProvider.php fișier la Aplicații / Furnizori și modificați codul existent așa cum se arată mai jos:
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'; }); } }
Pasul 10: Modificați codul existent în home.blade.php fișier așa cum se arată mai jos:
@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
Pasul 11: Accesați următoarea adresă URL și va produce o ieșire similară cu imaginea de mai jos. Apoi, conectați-vă la sistem ca administrator, manager și utilizator unul câte unul.
Notă : Următoarele adrese URL pot diferi de ale dvs.
http: //authorization-tutorial.test/login
- Conectare administrator
Dacă sunteți conectat ca admin , atunci rezultatul va fi similar cu următoarea captură de ecran.
selecție sortare exemplu cod c ++
- Logare manager
Dacă sunteți conectat ca administrator , atunci rezultatul va fi similar cu următoarea captură de ecran.
- Logare utilizator
Dacă sunteți conectat ca utilizator , atunci rezultatul va fi similar cu următoarea captură de ecran.
Trimiterea de e-mailuri în Laravel
Ce este Mailtrap
Există mai multe instrumente online gratuite disponibile pentru a testa e-mailurile în Laravel și Mailtrap este un astfel de instrument. Mailtrap folosește un server SMTP fals pentru a testa e-mailurile. Acceptă e-mailuri de la gazda locală care permite dezvoltatorului sau testerului să testeze modul în care e-mailurile vor fi partajate înainte de a le trimite în căsuțele primite reale.
Exemplu de trimitere a e-mailurilor
Să facem un exemplu simplu folosind Mailtrap .
Pasul 1: Rulați următoarea comandă în promptul de comandă pentru a crea un proiect Laravel numit tutorial prin e-mail .
composer create-project --prefer-dist laravel/laravel:^7.0 email-tutorial
Pasul 2: Viziteaza URL și creați un nou cont Mailtrap sau conectați-vă la contul Mailtrap dacă aveți deja unul.
Pasul 3: După conectarea la contul Mailtrap,
# 1) Click pe Mesaje primite Demo .
#Două) Identificați Nume de utilizator și Parola sub SMTP . Acest nume de utilizator și această parolă sunt unice și le vom folosi în pasul următor.
Notă: Viziteaza URL pentru a afla mai multe despre Mailtrap.
Pasul 4: Deschide . env fișier și introduceți Mailtrap numele de utilizator și parola.
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}'
Pasul 5: Adăugați următoarele două rute la rute / web.php fişier.
Route::get('/contact', 'ContactController@contact')->name('contact'); Route::post('/contact', 'ContactController@sendContactForm')->name('contact.send');
Pasul 6: Rulați următoarea comandă în promptul de comandă pentru a crea FileUploadController și modificați codul existent așa cum se arată mai jos.
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!'); } }
Pasul 7: Rulați următoarea comandă în promptul de comandă pentru a crea ContactMail clasă. Această comandă va crea un fișier numit ContactMail.php în App / Mail director.
php artisan make:mail ContactMail
Pasul 8: Modificați codul existent în ContactMail.php după cum se arată mai jos.
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); } }
Pasul 9: Creați următoarele fișiere de vizualizare și adăugați codurile.
# 1) Creați contact.blade.php fișier și adăugați următorul cod.
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
#Două) Creați contact-template.blade.php fișier și adăugați următorul cod.
Name: {{ $data('name') }}
Subject: {{ $data('subject') }}
Message: {{ $data('message') }}
Pasul 10: Accesați următoarea adresă URL și va produce o ieșire similară cu imaginea de mai jos.
Notă : Următoarea adresă URL poate diferi de a dvs.
http: //email-tutorial.test/contact
Pasul 11: Completați formularul și trimiteți.
Pasul 12: Acum, vizitați-vă Mailtrap cont și verificați căsuța de e-mail. Veți vedea un mesaj nou în căsuța de e-mail similar cu captura de ecran de mai jos.
Concluzie
Încărcarea fișierului Laravel este ușoară, iar dezvoltatorul poate seta și permisiunile fișierului Laravel. Laravel oferă o modalitate ușoară de a seta, obține și șterge datele sesiunii. Autentificarea Laravel ajută la identificarea utilizatorilor, în timp ce autorizarea Laravel verifică dacă utilizatorii autentificați au permisiunea de a accesa resursele solicitate.
Putem folosi instrumente precum Mailtrap pentru a testa e-mailurile înainte de a le trimite în căsuțele primite.
Sperăm că vi s-a părut util acest tutorial! Sper să ne revedem în următorul tutorial unde vom discuta Forjă Laravel și colecții .
Învățare fericită!
<< PREV Tutorial | URMĂTOARE Tutorial >>
Lectură recomandată
- Tutorial PHP Laravel pentru începători: Ce este Laravel Framework
- Colecția Laravel și Tutorialul Forja Laravel
- Baza de date Laravel, migrații, ORM elocvent și Tinker
- Formulare Laravel și reguli de validare cu exemplu
- Permisiuni de acces la fișierele Unix: Unix Chmod, Chown și Chgrp
- Permisiuni Unix: Permisiuni de fișiere în Unix cu exemple
- Cum să încărcați fișierul utilizând Selenium Webdriver - 3 metode
- Manipularea fișierelor în Unix: Prezentare generală a sistemului de fișiere Unix