laravel session file upload download
Denne vejledning dækker Laravel Session, upload af filer, download, filtilladelse, Laravel-godkendelse og autorisation, afsendelse af e-mails osv. Med eksempler:
I Laravel-formularer og valideringsregler tutorial af Laravel Tutorial-serie , vi lærte om forskellige formelementer med eksempler.
Længere i denne vejledning har vi også diskuteret, hvordan man gør det indstille, hente, slette sessionsdata under Laravel-sessioner, og hvordan man sender e-mails via Posttrap i detaljer.
For alle eksemplerne har vi brugt Laravel version 7 .
seje ting, du kan gøre med c ++
Forudsætninger
I vores tidligere tutorials har vi dækket grundlæggende træk ved Laravel , databasebehandling, og formhåndtering , og du skal være fortrolig med disse emner for en bedre forståelse af denne vejledning.
Lad os begynde!
Hvad du lærer:
- Laravel-filoverførsel
- Laravelsession
- Laravel-godkendelse
- Laravel-godkendelse
- Afsendelse af e-mails i Laravel
- Konklusion
Laravel-filoverførsel
Det er nemt at uploade filer i Laravel. Udvikleren kan også specificere Laravel filtilladelser såsom filtyper, størrelsesbegrænsninger for de filer, der kan uploades af brugeren osv.
Eksempel på upload af Laravel-filer
I dette eksempel har vi oprettet en simpel formular med validering til upload af filer.
Trin 1: Kør følgende kommando i kommandoprompten for at oprette et Laravel-projekt med navnet fil-upload-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 file-uploading-tutorial
Trin 2: Føj 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');
Trin 3: Kør følgende kommando i kommandoprompten for at oprette FileUploadController og ændre den eksisterende kode 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); } }
Trin 4: Opret en visningsfil med navnet create.blade.php og tilføj 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
Trin 5: Opret en mappe med navnet fil uploads i offentlig folder. Det er mappen, hvor uploadede filer er gemt.
Trin 6: Besøg følgende URL, og den producerer en output svarende til nedenstående skærmbillede.
Bemærk : Følgende URL kan afvige fra din.
http: //fil-uploading-tutorial.test/file/upload
Trin 7: Nu kan du uploade en gyldig fil og indsende formularen. Kontroller, at den uploadede fil er gemt i fil uploads folder. Du kan også prøve at uploade en ugyldig fil (fil med en ugyldig filtype og / eller størrelsesgrænse overskredet fil) og indsende formularen for at kontrollere valideringen.
I ovenstående eksempel har brugeren kun lov til at indsende dok , docx , nittende , csv, og pdf filer med en maksimal størrelse på 1024 bytes .
Eksempel 1: Uploade en pdf-fil, der er mindre end 1024 byte.
Eksempel 2: Uploade en billedfil (PNG, JPEG osv.).
Eksempel 3: Uploade en pdf-fil, der er mere end 1024 bytes i størrelse.
Laravelsession
TIL session er vant til gemme brugerdata på tværs af flere brugeranmodninger . Det hjælper med at holde styr på webstedsbrugerne . Laravelsessionskonfiguration kan udføres i config / session.php fil. Som standard er fildriver bruges til at håndtere sessionsdata.
Henter Laravel-sessionsdata
Først skal du hente en forekomst af en session, der er tilgængelig via en HTTP-anmodning. Brug derefter få() metode til at få adgang til data.
$session_data = $request->session()->get('key');
Lagring af data i Laravel-session
Der er to måder at gemme data på en session.
# 1) Bruger sætte() metode - Denne metode gemmer data via en anmodningsinstans.
$request->session()->put('key', 'value');
#to) Ved brug af session hjælper - Denne metode gemmer data via den globale hjælper.
session(('key' => 'value'));
Sletning af Laravel-sessionsdata
Det glemte() metode bruges til at slette specifikke data fra sessionen.
$request->session()->forget(key);
Det Flush() metode bruges til at slette alle data fra sessionen.
Flash-data ved hjælp af Laravel-session
Det blitz() metoden bruges også til at gemme data i en session, men kun tilgængelig til den næste HTTP-anmodning.
$request->session()->flash('status', Successful!');
Laravelsession Eksempel
Lad os lære at gøre det sæt, få, og slet session data ved hjælp af et simpelt session eksempel.
Trin 1: Kør følgende kommando i kommandoprompten for at oprette et Laravel-projekt med navnet session-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 session-tutorial
Trin 2: Tilføj 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');
Trin 3: Kør følgende kommando i kommandoprompten for at oprette SessionController og rediger den eksisterende kode 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.'; } }
Trin 4: Besøg følgende webadresser i den givne rækkefølge til sæt , få, og slet session data.
Bemærk : Følgende webadresser kan afvige fra din.
# 1) Besøg følgende URL til indstil sessionsdata .
http: //session-tutorial.test/session/set
Det vil producere en output svarende til nedenstående skærmbillede.
#to) Besøg følgende URL til få sessionsdata .
http: //session-tutorial.test/session/get
Det vil producere en output svarende til nedenstående skærmbillede.
# 3) Besøg følgende URL til slet sessionsdata .
http: //session-tutorial.test/session/delete
Det vil producere en output svarende til nedenstående skærmbillede.
# 4) Efter sletning af sessionsdataene skal du besøge følgende URL igen.
http: //session-tutorial.test/session/get
Det vil producere en output svarende til nedenstående skærmbillede.
Laravel-godkendelse
Laravel-godkendelse er enkel. Det er vant til identificere brugere . Normalt opnås det ved identificering af brugernavn og adgangskode for brugeren . Hvis brugerlegitimationsoplysningerne identificeres som gyldige, siges brugeren at være en godkendt bruger .
Det config / auth.php fil er godkendelseskonfigurationsfilen. Laravel-godkendelse består af vagter og udbydere .
Vagter: Det definerer, hvordan brugere godkendes for hver anmodning.
Udbydere: Det definerer, hvordan brugerne hentes fra din vedvarende opbevaring.
Desuden kan du også definere yderligere udbydere efter behov. Det behøver imidlertid ikke at ændre standardgodkendelseskonfigurationen.
Bemærk, at vi har ikke diskuteret vagter og udbydere i detaljer i denne vejledning.
Godkendelseseksempel
I dette eksempel har vi oprettet et simpelt Laravel 7 auth-system.
Trin 1: Kør følgende kommando i kommandoprompten for at oprette et Laravel-projekt med navnet auth-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 auth-tutorial
Trin 2: Forbind dit projekt til databasen, og kør følgende kommando i kommandoprompten for at køre standardmigreringer.
php artisan migrate
Trin 3: Kør følgende kommando i kommandoprompten for at installere Laravel UI-pakke .
composer require laravel/ui
Trin 4: Næste trin er at generere auth stillads med Bootstrap, Vis, eller Reagere . Du kan løbe en af følgende kommandoer at skabe autentiske stilladser.
Kør følgende kommando i kommandoprompten for at generere auth stillads med Bootstrap .
php artisan ui bootstrap --auth
Kør følgende kommando i kommandoprompten for at generere auth stillads med Udsigt .
php artisan ui vue --auth
Kør følgende kommando i kommandoprompten for at generere auth stillads med Reagere .
php artisan ui react --auth
Trin 5: Kør følgende to kommandoer i kommandoprompten for at kompilere det nye stillads ved at installere npm afhængigheder .
npm install npm run dev
Trin 6: Besøg følgende URL'er for at teste godkendelse ved at oprette en ny bruger (registrere en ny bruger) og logge ind på systemet. Du kan prøve både gyldige og ugyldige data for at teste godkendelse.
Bemærk : Følgende webadresser kan afvige fra din.
Først skal du registrere en ny bruger. Besøg følgende URL for at registrere en ny bruger, og den producerer en output svarende til nedenstående skærmbillede.
http: //auth-tutorial.test/register
Efter registrering af en ny bruger skal du logge ind på systemet ved at besøge følgende URL, og det vil producere en output svarende til nedenstående skærmbillede.
http: //auth-tutorial.test/login
Et vellykket login omdirigerer brugeren til startside / dashboard som vist nedenfor.
Laravel-godkendelse
Enkelt sagt bemyndigelse kontrollerer, om godkendte brugere har den nødvendige tilladelse til at få adgang til de ønskede ressourcer .
Godkendelseseksempel
I dette eksempel har vi oprettet et simpelt Laravel 7 autorisationssystem.
Trin 1: Kør følgende kommando i kommandoprompten for at oprette et Laravel-projekt med navnet autorisationsvejledning .
composer create-project --prefer-dist laravel/laravel:^7.0 authorization-tutorial
Trin 2: Forbind dit projekt til databasen.
Trin 3: Kør følgende kommando i kommandoprompten for at oprette add_role_column_to_users_table migrering og ændre den eksisterende kode som vist nedenfor:
php håndværkerfabrik: 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) { // }); } }
Trin 4: Kør følgende kommando i kommandoprompten for at køre alle migrationer.
php artisan migrate
Trin 5: Føj eksempeldata til Brugere tabel ved hjælp af tinker som vist nedenfor:
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
Trin 6: Kør følgende kommando i kommandoprompten for at installere Laravel UI-pakke .
composer require laravel/ui
Trin 7: Næste trin er at generere auth stillads med Bootstrap, Vis, eller Reagere . Du kan løbe en af følgende kommandoer at skabe autentiske stilladser.
Kør følgende kommando i kommandoprompten for at generere auth stillads med Bootstrap .
php artisan ui bootstrap --auth
Kør følgende kommando i kommandoprompten for at generere auth stillads med Udsigt .
php artisan ui vue --auth
Kør følgende kommando i kommandoprompten for at generere auth stillads med Reagere .
php artisan ui react --auth
Trin 8: Kør følgende to kommandoer i kommandoprompten for at kompilere det nye stillads ved at installere npm afhængigheder .
npm install npm run dev
Trin 9: Åbn AuthServiceProvider.php arkiv ved App / udbydere og rediger den eksisterende kode 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'; }); } }
Trin 10: Rediger den eksisterende kode i home.blade.php fil 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
Trin 11: Besøg følgende URL, og den producerer en output svarende til nedenstående skærmbillede. Log derefter ind på systemet som en administrator, en manager og en bruger en ad gangen.
Bemærk : Følgende webadresser kan afvige fra din.
http: //authorization-tutorial.test/login
- Administrator login
Hvis du er logget ind som en admin , så svarer output til det følgende skærmbillede.
- Manager-login
Hvis du er logget ind som en Manager , så svarer output til det følgende skærmbillede.
- Bruger login
Hvis du er logget ind som en bruger , så svarer output til det følgende skærmbillede.
Afsendelse af e-mails i Laravel
Hvad er Mailtrap
Der er flere gratis onlineværktøjer til rådighed til test af e-mails i Laravel, og Posttrap er et sådant værktøj. Mailtrap bruger en falsk SMTP-server til at teste e-mails. Det accepterer e-mails fra den lokale vært, der giver udvikleren eller testeren mulighed for at teste, hvordan e-mails deles, før de sendes til rigtige indbakker.
Afsendelse af e-mailseksempel
Lad os gøre et simpelt eksempel ved hjælp af Posttrap .
Trin 1: Kør følgende kommando i kommandoprompten for at oprette et Laravel-projekt med navnet e-mail-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 email-tutorial
Trin 2: Besøg URL og opret en ny Mailtrap-konto, eller log ind på Mailtrap-kontoen, hvis du allerede har en.
Trin 3: Efter login på Mailtrap-kontoen,
# 1) Klik på Demo-indbakke .
#to) Identificer Brugernavn og Adgangskode under SMTP . Dette brugernavn og adgangskode er unikke, og vi bruger dem i næste trin.
Bemærk: Besøg URL at vide mere om Mailtrap.
Trin 4: Åbn. env fil og indtast din Posttrap brugernavn og adgangskode.
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}'
Trin 5: Føj følgende to ruter til ruter / web.php fil.
Route::get('/contact', 'ContactController@contact')->name('contact'); Route::post('/contact', 'ContactController@sendContactForm')->name('contact.send');
Trin 6: Kør følgende kommando i kommandoprompten for at oprette FileUploadController og ændre den eksisterende kode som vist nedenfor.
php håndværker fabrikat: 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!'); } }
Trin 7: Kør følgende kommando i kommandoprompten for at oprette KontaktMail klasse. Denne kommando opretter en fil med navnet KontaktMail.php i App / Mail vejviser.
php artisan make:mail ContactMail
Trin 8: Rediger den eksisterende kode i KontaktMail.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); } }
Trin 9: Opret følgende visningsfiler, og tilføj koderne.
# 1) Opret contact.blade.php fil, og tilføj 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) Opret contact-template.blade.php fil, og tilføj følgende kode.
Name: {{ $data('name') }}
Subject: {{ $data('subject') }}
Message: {{ $data('message') }}
Trin 10: Besøg følgende URL, og den producerer en output svarende til nedenstående skærmbillede.
Bemærk : Følgende URL kan afvige fra din.
http: //email-tutorial.test/contact
Trin 11: Udfyld formularen og send.
Trin 12: Besøg nu din Posttrap konto og tjek indbakken. Du vil se en ny besked i din indbakke svarende til nedenstående skærmbillede.
Konklusion
Laravel-filupload er let, og udvikleren kan også indstille Laravel-filtilladelser. Laravel giver en nem måde at indstille, hente og slette sessionsdata på. Laravel-godkendelse hjælper med at identificere brugere, mens Laravel-godkendelse verificerer, om de godkendte brugere har tilladelse til at få adgang til de ønskede ressourcer.
Vi kan bruge værktøjer som Mailtrap til at teste e-mails, inden vi sender dem til faktiske indbakker.
Vi håber, du fandt denne tutorial nyttig! Håber at se dig igen i næste tutorial, hvor vi vil diskutere Laravel smedje og samlinger .
Glad læring!
hvilken proces kræver automatiske builds og test for at verificere software under udvikling
<< PREV Tutorial | NÆSTE vejledning >>
Anbefalet læsning
- PHP Laravel Tutorial for begyndere: Hvad er Laravel Framework
- Laravel Collection And Laravel Forge Tutorial
- Laravel Database, Migrations, Eloquent ORM And Tinker
- Laravel-formularer og valideringsregler med eksempel
- Tilladelser til Unix-filadgang: Unix Chmod, Chown og Chgrp
- Unix-tilladelser: Filtilladelser i Unix med eksempler
- Sådan uploades fil ved hjælp af Selenium Webdriver - 3 metoder
- Filmanipulation i Unix: Oversigt over Unix File System