laravel session file upload download
Aquest tutorial tracta de Laravel Session, càrrega, baixada, permís de fitxers, autenticació i autorització de Laravel, enviament de correus electrònics, etc., amb exemples:
A la Formularis Laravel i regles de validació tutorial del Sèrie Tutorial Laravel , hem après diferents elements de la forma amb exemples.
Més endavant en aquest tutorial, també hem comentat com fer-ho definir, obtenir, suprimir dades de sessió a les sessions de Laravel i com enviar correus electrònics mitjançant Mailtrap en detall.
Hem utilitzat tots els exemples Versió 7 de Laravel .
quins són els diferents tipus de proves
Requisits previs
En els nostres tutorials anteriors, hem tractat característiques bàsiques de Laravel , manipulació de bases de dades, i manipulació de formularis , i heu de conèixer aquests temes per comprendre millor aquest tutorial.
Anem a començar!
Què aprendreu:
- Pujada de fitxers Laravel
- Sessió Laravel
- Autenticació Laravel
- Autorització Laravel
- S'estan enviant correus electrònics a Laravel
- Conclusió
Pujada de fitxers Laravel
Carregar fitxers a Laravel és fàcil. El desenvolupador també pot especificar Laravel permisos de fitxers com ara tipus de fitxers, límits de mida dels fitxers que l'usuari pot penjar, etc.
Exemple de càrrega de fitxers Laravel
En aquest exemple, hem creat un formulari senzill amb validació per penjar fitxers.
Pas 1: Executeu l'ordre següent a l'indicador d'ordres per crear un projecte Laravel anomenat tutorial sobre la càrrega de fitxers .
composer create-project --prefer-dist laravel/laravel:^7.0 file-uploading-tutorial
Pas 2: Afegiu les dues rutes següents al routes / web.php dossier.
Route::get('file/upload','FileUploadController@create')->name('file.create'); Route::post('file/upload','FileUploadController@store')->name('file.store');
Pas 3: Executeu l'ordre següent a l'indicador d'ordres per crear FileUploadController i modifiqueu el codi existent com es mostra a continuació.
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); } }
Pas 4: Creeu un fitxer de visualització anomenat create.blade.php i afegiu el codi següent:
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
Pas 5: Creeu una carpeta anomenada càrregues de fitxers al públic carpeta. És la carpeta on s’emmagatzemen els fitxers carregats.
Pas 6: Visiteu l'URL següent i produirà una sortida similar a la captura de pantalla següent.
Nota : L'URL següent pot diferir de la vostra.
http: //file-uploading-tutorial.test/file/upload
Pas 7: Ara podeu penjar un fitxer vàlid i enviar el formulari. Verifiqueu que el fitxer carregat estigui emmagatzemat a càrregues de fitxers carpeta. També podeu provar de penjar un fitxer no vàlid (un fitxer amb un fitxer no vàlid amb un tipus o un límit de mida excedit) i enviar el formulari per comprovar la validació.
A l'exemple anterior, l'usuari només pot enviar doc , docx , dinovè , CSV, i pdf fitxers amb una mida màxima de 1024 bytes .
Exemple 1: Carregant un fitxer pdf que tingui una mida inferior a 1024 bytes.
Exemple 2: Carregant un fitxer d’imatges (PNG, JPEG, etc.).
Exemple 3: Carregant un fitxer pdf de més de 1024 bytes de mida.
Sessió Laravel
A sessió està acostumat a emmagatzemar dades d'usuari en diverses sol·licituds d'usuaris . Ajuda a fer un seguiment dels usuaris del lloc web . La configuració de la sessió de Laravel es pot fer a config / session.php dossier. Per defecte, el fitxer controlador de fitxers s’utilitza per gestionar les dades de la sessió.
Recuperació de dades de sessió de Laravel
En primer lloc, heu d’obtenir una instància d’una sessió a la qual es pugui accedir mitjançant una sol·licitud HTTP. A continuació, utilitzeu el fitxer aconseguir() mètode per accedir a les dades.
$session_data = $request->session()->get('key');
Emmagatzematge de dades a la sessió Laravel
Hi ha dues maneres d’emmagatzemar dades en una sessió.
# 1) Utilitzant el put () mètode: aquest mètode emmagatzema dades mitjançant una instància de sol·licitud.
$request->session()->put('key', 'value');
# 2) Utilitzant sessió ajudant: aquest mètode emmagatzema les dades mitjançant l’ajudant global.
session(('key' => 'value'));
Supressió de les dades de sessió Laravel
El oblidat () s'utilitza el mètode per suprimir dades específiques de la sessió.
$request->session()->forget(key);
El rubor() s'utilitza el mètode per suprimir totes les dades de la sessió.
Dades Flash mitjançant sessió Laravel
El flash () El mètode també s'utilitza per emmagatzemar dades en una sessió, però només disponible per a la propera sol·licitud HTTP.
$request->session()->flash('status', Successful!');
Exemple de sessió Laravel
Aprenem a fer-ho establir, aconseguir, i esborrar dades de sessió mitjançant un exemple de sessió senzill.
Pas 1: Executeu l'ordre següent a l'indicador d'ordres per crear un projecte Laravel anomenat sessió-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 session-tutorial
Pas 2: Afegiu les tres rutes següents al fitxer routes / web.php dossier.
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');
Pas 3: Executeu l'ordre següent a l'indicador d'ordres per crear SessionController i modifiqueu el codi existent com es mostra a continuació:
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.'; } }
Pas 4: Visiteu els URL següents en l'ordre indicat a conjunt , aconseguir, i esborrar dades de sessió.
Nota : Els URL següents poden diferir dels vostres.
# 1) Visiteu l'URL següent a defineix les dades de la sessió .
http: //session-tutorial.test/session/set
Produirà una sortida similar a la captura de pantalla següent.
# 2) Visiteu l'URL següent a obtenir dades de sessió .
http: //session-tutorial.test/session/get
Produirà una sortida similar a la captura de pantalla següent.
# 3) Visiteu l'URL següent a suprimiu les dades de la sessió .
http: //session-tutorial.test/session/delete
Produirà una sortida similar a la captura de pantalla següent.
# 4) Després de suprimir les dades de la sessió, torneu a visitar l'URL següent.
http: //session-tutorial.test/session/get
Produirà una sortida similar a la captura de pantalla següent.
Autenticació Laravel
L’autenticació de Laravel és senzilla. Està acostumat a identificar usuaris . Normalment, s’aconsegueix mitjançant identificació del nom d'usuari i contrasenya de l'usuari . Si les credencials d’usuari s’identifiquen com a vàlides, es diu que és un usuari usuari autenticat .
El config / auth.php fitxer és el fitxer de configuració d’autenticació. L’autenticació Laravel consisteix en guardes i proveïdors .
Guàrdies: Defineix com s’autenticen els usuaris per a cada sol·licitud.
Proveïdors: Defineix com es recuperen els usuaris del vostre emmagatzematge persistent.
A més, també podeu definir proveïdors addicionals segons sigui necessari. Tot i això, no cal canviar la configuració d’autenticació per defecte.
Tingueu en compte que en aquest tutorial no hem discutit detalladament els guardians i els proveïdors.
Exemple d'autenticació
En aquest exemple, hem creat un sistema d'autenticació Laravel 7 senzill.
Pas 1: Executeu l'ordre següent a l'indicador d'ordres per crear un projecte Laravel anomenat autotutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 auth-tutorial
Pas 2: Connecteu el projecte a la base de dades i executeu l'ordre següent a l'indicador d'ordres per executar les migracions per defecte.
php artisan migrate
Pas 3: Executeu l'ordre següent a l'indicador d'ordres per instal·lar el fitxer Paquet d'interfície d'usuari Laravel .
composer require laravel/ui
Pas 4: El següent pas és generar aut bastides amb Bootstrap, Veure, o bé Reacciona . Podeu córrer una de les ordres següents per crear bastides d'autenticació.
Executeu l'ordre següent a l'indicador d'ordres per generar bastides d'autenticació amb Bootstrap .
php artisan ui bootstrap --auth
Executeu l'ordre següent a l'indicador d'ordres per generar bastides d'autenticació amb Veure .
php artisan ui vue --auth
Executeu l'ordre següent a l'indicador d'ordres per generar bastides d'autenticació amb Reacciona .
php artisan ui react --auth
Pas 5: Executeu les dues ordres següents a l'indicador d'ordres per compilar la bastida nova instal·lant-la dependències de npm .
npm install npm run dev
Pas 6: Visiteu els URL següents per provar l'autenticació creant un usuari nou (registrant un usuari nou) i accedint al sistema. Podeu provar dades vàlides i no vàlides per provar l'autenticació.
Nota : Els URL següents poden diferir dels vostres.
En primer lloc, heu de registrar un usuari nou. Visiteu l'URL següent per registrar un usuari nou i produirà una sortida similar a la captura de pantalla següent.
http: //auth-tutorial.test/register
Després de registrar un usuari nou, inicieu sessió al sistema visitant l'URL següent i produirà una sortida similar a la següent captura de pantalla.
http: //auth-tutorial.test/login
Un inici de sessió correcte redirigirà l'usuari al fitxer pàgina d'inici / tauler com es mostra a continuació.
Autorització Laravel
En termes simples, autorització verifica si el fitxer els usuaris autenticats tenen el permís necessari per accedir als recursos sol·licitats .
Exemple d'autorització
En aquest exemple, hem creat un sistema d’autorització Laravel 7 senzill.
Pas 1: Executeu l'ordre següent a l'indicador d'ordres per crear un projecte Laravel anomenat autorització-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 authorization-tutorial
Pas 2: Connecteu el vostre projecte a la base de dades.
Pas 3: Executeu l'ordre següent a l'indicador d'ordres per crear el fitxer add_role_column_to_users_table migreu i modifiqueu el codi existent com es mostra a continuació:
php artisan make: migració 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) { // }); } }
Pas 4: Executeu l'ordre següent a l'indicador d'ordres per executar totes les migracions.
php artisan migrate
Pas 5: Afegiu dades de mostra al fitxer Usuaris taula utilitzant joguina com es mostra a continuació:
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
Pas 6: Executeu l'ordre següent a l'indicador d'ordres per instal·lar el fitxer Paquet d'interfície d'usuari Laravel .
composer require laravel/ui
Pas 7: El següent pas és generar aut bastides amb Bootstrap, Veure, o bé Reacciona . Podeu córrer una de les ordres següents per crear bastides d'autenticació.
Executeu l'ordre següent a l'indicador d'ordres per generar bastides d'autenticació amb Bootstrap .
php artisan ui bootstrap --auth
Executeu l'ordre següent a l'indicador d'ordres per generar bastides d'autenticació amb Veure .
php artisan ui vue --auth
Executeu l'ordre següent a l'indicador d'ordres per generar bastides d'autenticació amb Reacciona .
php artisan ui react --auth
Pas 8: Executeu les dues ordres següents a l'indicador d'ordres per compilar la bastida nova instal·lant-la dependències de npm .
npm install npm run dev
Pas 9: Obriu el fitxer AuthServiceProvider.php arxiu a Aplicació / proveïdors i modifiqueu el codi existent com es mostra a continuació:
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'; }); } }
Pas 10: Modifiqueu el codi existent al fitxer home.blade.php com es mostra a continuació:
millors descàrregues de música mp3 per a Android
@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
Pas 11: Visiteu l'URL següent i produirà una sortida similar a la captura de pantalla següent. A continuació, inicieu sessió al sistema com a administrador, administrador i usuari d’un en un.
Nota : Els URL següents poden diferir dels vostres.
http: //authorization-tutorial.test/login
- Inici de sessió d'administrador
Si heu iniciat la sessió com a administrador , llavors la sortida serà similar a la següent captura de pantalla.
- Inici de sessió del gestor
Si heu iniciat la sessió com a gerent , llavors la sortida serà similar a la següent captura de pantalla.
- Inici de sessió d'usuari
Si heu iniciat la sessió com a usuari , llavors la sortida serà similar a la següent captura de pantalla.
S'estan enviant correus electrònics a Laravel
Què és Mailtrap
Hi ha diverses eines en línia gratuïtes disponibles per provar correus electrònics a Laravel i Mailtrap és una d'aquestes eines. Mailtrap utilitza un servidor SMTP fals per provar els correus electrònics. Accepta correus electrònics de l’amfitrió local que permet al desenvolupador o al verificador provar com es compartiran els correus electrònics abans d’enviar-los a les bústies d’entrada reals.
Exemple d’enviament de correus electrònics
Fem un exemple senzill amb Mailtrap .
Pas 1: Executeu l'ordre següent a l'indicador d'ordres per crear un projecte Laravel anomenat tutorial per correu electrònic .
composer create-project --prefer-dist laravel/laravel:^7.0 email-tutorial
Pas 2: Visiteu el URL i creeu un compte de Mailtrap nou o inicieu sessió al compte de Mailtrap si ja en teniu.
Pas 3: Després d’iniciar sessió al compte Mailtrap,
# 1) Fer clic a Safata d'entrada de demostració .
# 2) Identifiqueu el fitxer Nom d'usuari i Contrasenya sota SMTP . Aquest nom d'usuari i contrasenya són únics i els utilitzarem al següent pas.
Nota: Visiteu el URL per obtenir més informació sobre Mailtrap.
Pas 4: Obriu el fitxer. env fitxer i introduïu el vostre fitxer Mailtrap nom d'usuari i contrasenya.
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}'
Pas 5: Afegiu les dues rutes següents al routes / web.php dossier.
Route::get('/contact', 'ContactController@contact')->name('contact'); Route::post('/contact', 'ContactController@sendContactForm')->name('contact.send');
Pas 6: Executeu l'ordre següent a l'indicador d'ordres per crear FileUploadController i modifiqueu el codi existent com es mostra a continuació.
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!'); } }
Pas 7: Executeu l'ordre següent a l'indicador d'ordres per crear Correu de contacte classe. Aquesta ordre crearà un fitxer anomenat ContactMail.php al Aplicació / correu electrònic directori.
php artisan make:mail ContactMail
Pas 8: Modifiqueu el codi existent al fitxer ContactMail.php com es mostra a continuació.
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); } }
Pas 9: Creeu els fitxers de visualització següents i afegiu-hi els codis.
# 1) Creeu el fitxer contact.blade.php i afegiu el codi següent.
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
# 2) Creeu el fitxer contact-template.blade.php i afegiu el codi següent.
Name: {{ $data('name') }}
Subject: {{ $data('subject') }}
Message: {{ $data('message') }}
Pas 10: Visiteu l'URL següent i produirà una sortida similar a la captura de pantalla següent.
Nota : L'URL següent pot diferir de la vostra.
http: //email-tutorial.test/contact
Pas 11: Empleneu el formulari i envieu-lo.
Pas 12: Ara visiteu el vostre Mailtrap compte i comproveu la safata d’entrada. Veureu un missatge nou a la safata d'entrada similar a la captura de pantalla següent.
Conclusió
La càrrega de fitxers Laravel és fàcil i el desenvolupador també pot definir permisos de fitxers Laravel. Laravel proporciona una manera senzilla de configurar, obtenir i suprimir dades de sessió. L’autenticació Laravel ajuda a identificar els usuaris mentre l’autorització Laravel verifica si els usuaris autenticats tenen permís per accedir als recursos sol·licitats.
Podem utilitzar eines com Mailtrap per provar els correus electrònics abans d’enviar-los a les safates d’entrada reals.
Esperem que aquest tutorial us sigui útil. Esperem tornar-vos a veure en el proper tutorial on parlarem Farga i col·leccions de Laravel .
Feliç aprenentatge!
<< PREV Tutorial | NEXT Tutorial >>
Lectura recomanada
- Tutorial de PHP Laravel per a principiants: què és Laravel Framework
- Col·lecció Laravel i Tutorial Laravel Forge
- Base de dades Laravel, migracions, ORM eloqüent i Tinker
- Formularis Laravel i regles de validació amb exemple
- Permisos d'accés a fitxers Unix: Unix Chmod, Chown i Chgrp
- Permisos Unix: Permisos de fitxers a Unix amb exemples
- Com penjar fitxers mitjançant Selenium Webdriver: 3 mètodes
- Manipulació de fitxers a Unix: Visió general del sistema de fitxers Unix