laravel session file upload download
Denne opplæringen dekker Laravel Session, filopplasting, nedlasting, filtillatelse, Laravel-autentisering og autorisasjon, sending av e-post osv. Med eksempler:
I Laravel skjemaer og valideringsregler opplæring av Laravel Opplæringsserie , lærte vi om forskjellige formelementer med eksempler.
Videre i denne opplæringen har vi også diskutert hvordan du gjør det angi, få, slette øktdata under Laravel økter, og hvordan du sender e-post via Posttrap i detalj.
For alle eksemplene har vi brukt Laravel versjon 7 .
beste programvare for spillutvikling for nybegynnere
Forutsetninger
I våre tidligere veiledninger har vi dekket grunnleggende trekk ved Laravel , databasebehandling, og skjemahåndtering , og du må være kjent med disse emnene for å få en bedre forståelse av denne veiledningen.
La oss begynne!
Hva du vil lære:
- Laravel filopplasting
- Laravelsession
- Laravel Authentication
- Laravel Autorisasjon
- Sende e-post i Laravel
- Konklusjon
Laravel filopplasting
Det er enkelt å laste opp filer i Laravel. Utvikleren kan også spesifisere Laravel filtillatelser som filtyper, størrelsesbegrensninger for filene som kan lastes opp av brukeren, etc.
Laravel filopplastingseksempel
I dette eksemplet har vi laget et enkelt skjema med validering for å laste opp filer.
Trinn 1: Kjør følgende kommando i ledeteksten for å opprette et Laravel-prosjekt som heter filopplasting-opplæring .
composer create-project --prefer-dist laravel/laravel:^7.0 file-uploading-tutorial
Steg 2: Legg til følgende to ruter til ruter / web.php fil.
Route::get('file/upload','FileUploadController@create')->name('file.create'); Route::post('file/upload','FileUploadController@store')->name('file.store');
Trinn 3: Kjør følgende kommando i ledeteksten for å opprette FileUploadController og endre den eksisterende koden som vist nedenfor.
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); } }
Trinn 4: Opprett en visningsfil med navnet create.blade.php og legg til følgende kode:
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
Trinn 5: Opprett en mappe med navnet filopplastinger i offentlig mappe. Det er mappen der opplastede filer lagres.
Trinn 6: Besøk følgende URL, og den vil produsere en utdata som ligner på skjermbildet nedenfor.
Merk : Følgende URL kan avvike fra din.
http: //fil-uploading-tutorial.test/file/upload
Trinn 7: Nå kan du laste opp en gyldig fil og sende inn skjemaet. Kontroller at den opplastede filen er lagret i filopplastinger mappe. Du kan også prøve å laste opp en ugyldig fil (fil med en ugyldig filtype og / eller størrelsesgrense overskredet fil) og sende inn skjemaet for å sjekke validering.
I eksemplet ovenfor har brukeren bare lov til å sende inn dok , docx , Nittende , csv, og pdf filer med en maksimal størrelse på 1024 byte .
Eksempel 1: Laste opp en pdf-fil som er mindre enn 1024 byte.
Eksempel 2: Laste opp en bildefil (PNG, JPEG, etc.).
Eksempel 3: Laste opp en pdf-fil med en størrelse på mer enn 1024 byte.
Laravelsession
TIL økt er vant til lagre brukerdata på tvers av flere brukerforespørsler . Det hjelper å holde oversikt over nettstedsbrukerne . Laravel øktkonfigurasjon kan gjøres i config / session.php fil. Som standard er fildriver brukes til å håndtere øktdata.
Henter Laravel-sesjonsdata
Først må du få en forekomst av en økt som er tilgjengelig via en HTTP-forespørsel. Bruk deretter få() metode for å få tilgang til data.
$session_data = $request->session()->get('key');
Lagring av data i Laravel Session
Det er to måter å lagre data i en økt.
#1) Bruker sette() metode - Denne metoden lagrer data via en forespørselsforekomst.
$request->session()->put('key', 'value');
#to) Ved hjelp av økt hjelper - Denne metoden lagrer data via den globale hjelperen.
session(('key' => 'value'));
Slette Laravel Sessionsdata
De glemte() metoden brukes til å slette spesifikke data fra økten.
$request->session()->forget(key);
De flush () metoden brukes til å slette alle data fra økten.
Flash-data ved hjelp av Laravel Session
De blits() metoden brukes også til å lagre data i en økt, men kun tilgjengelig for neste HTTP-forespørsel.
$request->session()->flash('status', Successful!');
Laravel-sesjonseksempel
La oss lære å gjøre det sett, få, og slett øktdata ved hjelp av et enkelt økteksempel.
Trinn 1: Kjør følgende kommando i ledeteksten for å opprette et Laravel-prosjekt som heter økt-opplæring .
composer create-project --prefer-dist laravel/laravel:^7.0 session-tutorial
Steg 2: Legg til følgende tre ruter i ruter / web.php fil.
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');
Trinn 3: Kjør følgende kommando i ledeteksten for å opprette SessionController og endre den eksisterende koden som vist nedenfor:
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.'; } }
Trinn 4: Gå til følgende URL-er i den angitte rekkefølgen til sett , få, og slett øktdata.
Merk : Følgende nettadresser kan avvike fra din.
#1) Gå til følgende URL til angi øktdata .
http: //session-tutorial.test/session/set
Det vil produsere en utgang som ligner på skjermbildet nedenfor.
#to) Gå til følgende URL til få øktdata .
http: //session-tutorial.test/session/get
Det vil produsere en utgang som ligner på skjermbildet nedenfor.
# 3) Gå til følgende URL til slett øktdata .
http: //session-tutorial.test/session/delete
Det vil produsere en utgang som ligner på skjermbildet nedenfor.
# 4) Etter å ha slettet øktdataene, gå tilbake til følgende URL.
http: //session-tutorial.test/session/get
Det vil produsere en utgang som ligner på skjermbildet nedenfor.
Laravel Authentication
Laravel-autentisering er enkel. Det er vant til identifisere brukere . Vanligvis oppnås det ved identifisere brukernavnet og passordet til brukeren . Hvis brukerlegitimasjonen er identifisert som gyldig, sies det at brukeren er en godkjent bruker .
De config / auth.php filen er autentiseringskonfigurasjonsfilen. Laravel-autentisering består av vakter og leverandører .
Vakter: Den definerer hvordan brukere blir autentisert for hver forespørsel.
Leverandører: Den definerer hvordan brukere blir hentet fra din vedvarende lagring.
Videre kan du også definere flere leverandører etter behov. Imidlertid trenger det ikke å endre standard autentiseringskonfigurasjon.
Vær oppmerksom på at vi har ikke diskutert vakter og leverandører i detalj i denne opplæringen.
Godkjenningseksempel
I dette eksemplet har vi opprettet et enkelt Laravel 7 auth-system.
Trinn 1: Kjør følgende kommando i ledeteksten for å opprette et Laravel-prosjekt som heter auth-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 auth-tutorial
Steg 2: Koble prosjektet til databasen og kjør følgende kommando i ledeteksten for å kjøre standardmigrasjoner.
php artisan migrate
Trinn 3: Kjør følgende kommando i ledeteksten for å installere Laravel UI-pakke .
composer require laravel/ui
Trinn 4: Neste trinn er å generere auth stillas med Bootstrap, View, eller Reagere . Du kan løpe en av følgende kommandoer å lage autentisk stillas.
Kjør følgende kommando i ledeteksten for å generere auth stillas med Støvelhempe .
php artisan ui bootstrap --auth
Kjør følgende kommando i ledeteksten for å generere auth stillas med Utsikt .
php artisan ui vue --auth
Kjør følgende kommando i ledeteksten for å generere auth stillas med Reagere .
php artisan ui react --auth
Trinn 5: Kjør følgende to kommandoer i ledeteksten for å kompilere det nye stillaset ved å installere npm avhengigheter .
npm install npm run dev
Trinn 6: Gå til følgende URL-er for å teste autentisering ved å opprette en ny bruker (registrere en ny bruker) og logge på systemet. Du kan prøve både gyldige og ugyldige data for å teste autentisering.
hva er funksjonstesting med eksempel
Merk : Følgende nettadresser kan avvike fra din.
Først må du registrere en ny bruker. Besøk følgende URL for å registrere en ny bruker, og den vil produsere en utdata som ligner på skjermbildet nedenfor.
http: //auth-tutorial.test/register
Etter å ha registrert en ny bruker, logg inn på systemet ved å gå til følgende URL, og det vil produsere en utdata som ligner på skjermbildet nedenfor.
http: //auth-tutorial.test/login
En vellykket pålogging vil omdirigere brukeren til startside / dashbord som vist under.
Laravel Autorisasjon
For å si det enkelt, autorisasjon verifiserer om autentiserte brukere har den nødvendige tillatelsen til å få tilgang til de forespurte ressursene .
Autorisasjonseksempel
I dette eksemplet har vi laget et enkelt Laravel 7 autorisasjonssystem.
Trinn 1: Kjør følgende kommando i ledeteksten for å opprette et Laravel-prosjekt som heter autorisasjonsveiledning .
composer create-project --prefer-dist laravel/laravel:^7.0 authorization-tutorial
Steg 2: Koble prosjektet til databasen.
Trinn 3: Kjør følgende kommando i ledeteksten for å opprette add_role_column_to_users_table migrering og endre eksisterende kode som vist nedenfor:
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) { // }); } }
Trinn 4: Kjør følgende kommando i ledeteksten for å kjøre alle overføringene.
php artisan migrate
Trinn 5: Legg til eksempeldata til Brukere bord ved hjelp av tinker som vist under:
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
Trinn 6: Kjør følgende kommando i ledeteksten for å installere Laravel UI-pakke .
composer require laravel/ui
Trinn 7: Neste trinn er å generere auth stillas med Bootstrap, View, eller Reagere . Du kan løpe en av følgende kommandoer å lage autentisk stillas.
Kjør følgende kommando i ledeteksten for å generere auth stillas med Støvelhempe .
php artisan ui bootstrap --auth
Kjør følgende kommando i ledeteksten for å generere auth stillas med Utsikt .
php artisan ui vue --auth
Kjør følgende kommando i ledeteksten for å generere auth stillas med Reagere .
php artisan ui react --auth
Trinn 8: Kjør følgende to kommandoer i ledeteksten for å kompilere det nye stillaset ved å installere npm avhengigheter .
npm install npm run dev
Trinn 9: Åpne AuthServiceProvider.php arkiv på App / leverandører og endre den eksisterende koden som vist nedenfor:
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'; }); } }
Trinn 10: Endre eksisterende kode i home.blade.php filen som vist nedenfor:
@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
Trinn 11: Besøk følgende URL, og den vil produsere en utdata som ligner på skjermbildet nedenfor. Logg deg deretter på systemet som administrator, administrator og bruker én om gangen.
Merk : Følgende nettadresser kan avvike fra din.
http: //authorization-tutorial.test/login
- Administrator pålogging
Hvis du er logget inn som en admin , vil utgangen være lik følgende skjermbilde.
- Manager-pålogging
Hvis du er logget inn som en sjef , vil utgangen være lik følgende skjermbilde.
- Brukerinnlogging
Hvis du er logget inn som en bruker , vil utgangen være lik følgende skjermbilde.
Sende e-post i Laravel
Hva er Mailtrap
Det er flere gratis online verktøy tilgjengelig for å teste e-post i Laravel, og Posttrap er et slikt verktøy. Mailtrap bruker en falsk SMTP-server for å teste e-post. Den godtar e-post fra den lokale verten som lar utvikleren eller testeren teste hvordan e-postmeldinger skal deles før de sendes til ekte innbokser.
Sende e-posteksempel
La oss gjøre et enkelt eksempel ved hjelp av Posttrap .
Trinn 1: Kjør følgende kommando i ledeteksten for å opprette et Laravel-prosjekt som heter email-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 email-tutorial
Steg 2: Besøk URL og opprett en ny Mailtrap-konto eller logg inn på Mailtrap-kontoen hvis du allerede har en.
Trinn 3: Etter innlogging på Mailtrap-kontoen,
#1) Klikk på Demo Innboks .
#to) Identifiser Brukernavn og Passord under SMTP . Dette brukernavnet og passordet er unike, og vi vil bruke dem i neste trinn.
Merk: Besøk URL å vite mer om Mailtrap.
Trinn 4: Åpne . env filen og skriv inn din Posttrap brukernavn og passord.
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}'
Trinn 5: Legg til følgende to ruter til ruter / web.php fil.
Route::get('/contact', 'ContactController@contact')->name('contact'); Route::post('/contact', 'ContactController@sendContactForm')->name('contact.send');
Trinn 6: Kjør følgende kommando i ledeteksten for å opprette FileUploadController og endre den eksisterende koden som vist nedenfor.
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!'); } }
Trinn 7: Kjør følgende kommando i ledeteksten for å opprette KontaktMail klasse. Denne kommandoen oppretter en fil med navnet ContactMail.php i App / Mail katalog.
php artisan make:mail ContactMail
Trinn 8: Endre eksisterende kode i ContactMail.php filen som vist nedenfor.
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); } }
Trinn 9: Opprett følgende visningsfiler og legg til kodene.
#1) Opprett contact.blade.php filen og legg til følgende kode.
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
#to) Opprett contact-template.blade.php filen og legg til følgende kode.
Name: {{ $data('name') }}
Subject: {{ $data('subject') }}
Message: {{ $data('message') }}
Trinn 10: Besøk følgende URL, og den vil produsere en utdata som ligner på skjermbildet nedenfor.
Merk : Følgende URL kan avvike fra din.
http: //email-tutorial.test/contact
Trinn 11: Fyll ut skjemaet og send inn.
Trinn 12: Nå, besøk din Posttrap konto og sjekk innboksen. Du vil se en ny melding i innboksen din, lik skjermbildet nedenfor.
Konklusjon
Laravel-filopplasting er enkelt, og utvikleren kan også angi Laravel-filtillatelser. Laravel gir en enkel måte å angi, få og slette øktdata. Laravel-autentisering hjelper til med å identifisere brukere mens Laravel-autorisasjon verifiserer om de autentiserte brukerne har tillatelse til å få tilgang til de forespurte ressursene.
Vi kan bruke verktøy som Mailtrap for å teste e-post før vi sender dem til faktiske innbokser.
Vi håper du syntes denne veiledningen var nyttig! Håper vi sees igjen i neste opplæring der vi skal diskutere Laravel smie og samlinger .
Glad læring!
<< PREV Tutorial | NESTE veiledning >>
Anbefalt lesing
- PHP Laravel-opplæring for nybegynnere: Hva er Laravel Framework
- Laravel Collection And Laravel Forge Tutorial
- Laravel Database, Migrations, Eloquent ORM And Tinker
- Laravel skjemaer og valideringsregler med eksempel
- Tillatelser til Unix-filtilgang: Unix Chmod, Chown og Chgrp
- Unix-tillatelser: Filtillatelser i Unix med eksempler
- Hvordan laste opp fil ved hjelp av Selenium Webdriver - 3 metoder
- Filmanipulering i Unix: Oversikt over Unix File System