laravel session file upload download
Tento výukový program zahrnuje relaci laravel, nahrávání souborů, stahování, oprávnění k souborům, ověření a autorizaci laravel, odesílání e-mailů atd. S příklady:
V Laravelské formuláře a ověřovací pravidla návod na Laravel Tutorial series , na příkladech jsme se dozvěděli o různých prvcích formuláře.
Dále v tomto tutoriálu jsme také diskutovali, jak na to nastavit, získat, odstranit data relace v rámci relací Laravel a jak posílat e-maily prostřednictvím Poštovní past podrobně.
Pro všechny příklady jsme použili Laravel verze 7 .
jak vytvořit soubor c ++
Předpoklady
V našich předchozích tutoriálech jsme se zabývali základní vlastnosti laravel , zpracování databáze, a zpracování formuláře a pro lepší pochopení tohoto tutoriálu musíte být s těmito tématy obeznámeni.
Pojďme začít!
Co se naučíte:
- Nahrání souboru laravel
- Laravelské zasedání
- Ověřování laravel
- Oprávnění laravel
- Odesílání e-mailů v laravel
- Závěr
Nahrání souboru laravel
Nahrávání souborů do Laravelu je snadné. Vývojář může také určit Laravel oprávnění souboru jako jsou typy souborů, omezení velikosti souborů, které může uživatel nahrát atd.
Příklad nahrávání laravel souboru
V tomto příkladu jsme vytvořili jednoduchý formulář s ověřením pro nahrávání souborů.
Krok 1: Spuštěním následujícího příkazu v příkazovém řádku vytvořte projekt Laravel s názvem tutoriál pro nahrávání souborů .
composer create-project --prefer-dist laravel/laravel:^7.0 file-uploading-tutorial
Krok 2: Přidejte následující dvě trasy do trasy / web.php soubor.
Route::get('file/upload','FileUploadController@create')->name('file.create'); Route::post('file/upload','FileUploadController@store')->name('file.store');
Krok 3: Spuštěním následujícího příkazu v příkazovém řádku vytvořte FileUploadController a upravte stávající kód, jak je znázorněno níže.
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); } }
Krok 4: Vytvořte soubor pohledu s názvem create.blade.php a přidejte následující kód:
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
Krok 5: Vytvořte složku s názvem nahrávání souborů v veřejnost složku. Je to složka, kde jsou uloženy nahrané soubory.
Krok 6: Navštivte následující adresu URL a vytvoří se výstup podobný následujícímu snímku obrazovky.
Poznámka : Následující adresa URL se může lišit od vaší.
http: //file-uploading-tutorial.test/file/upload
Krok 7: Nyní můžete nahrát platný soubor a odeslat formulář. Ověřte, zda je nahraný soubor uložen v souboru nahrávání souborů složku. Můžete také zkusit nahrát neplatný soubor (soubor s překročeným souborem s neplatným typem nebo velikostí souboru) a odeslat formulář ke kontrole ověření.
Ve výše uvedeném příkladu může uživatel pouze odeslat doc , docx , devatenáctý , CSV, a pdf soubory s maximální velikostí 1024 bajtů .
Příklad 1: Nahrávání souboru PDF o velikosti menší než 1024 bajtů.
Příklad 2: Nahrávání obrazového souboru (PNG, JPEG atd.).
Příklad 3: Nahrávání souboru PDF o velikosti více než 1024 bajtů.
Laravelské zasedání
NA zasedání je zvyklý ukládat uživatelská data napříč několika požadavky uživatelů . Pomáhá to sledovat uživatele webových stránek . Konfiguraci laravel relace lze provést v config / session.php soubor. Ve výchozím nastavení je ovladač souboru se používá ke zpracování dat relace.
Načítání dat laravel relace
Nejprve musíte získat instanci relace, ke které lze přistupovat prostřednictvím požadavku HTTP. Poté použijte dostat() metoda přístupu k datům.
$session_data = $request->session()->get('key');
Ukládání dat v laravel relaci
Existují dva způsoby, jak ukládat data v relaci.
# 1) Za použití dát() method - Tato metoda ukládá data prostřednictvím instance požadavku.
$request->session()->put('key', 'value');
#dva) Použitím zasedání helper - Tato metoda ukládá data prostřednictvím globálního pomocníka.
session(['key' => 'value']);
Mazání dat laravel relace
The zapomněl () metoda se používá k odstranění konkrétních dat z relace.
$request->session()->forget(key);
The flush () metoda se používá k odstranění všech dat z relace.
Flash data pomocí laravel relace
The blikat() metoda se také používá k ukládání dat v relaci, ale je k dispozici pouze pro další požadavek HTTP.
$request->session()->flash('status', Successful!');
Příklad laravel relace
Naučme se, jak na to nastavit, dostat, a vymazat data relace pomocí jednoduchého příkladu relace.
Krok 1: Spuštěním následujícího příkazu v příkazovém řádku vytvořte projekt Laravel s názvem výukový program relace .
composer create-project --prefer-dist laravel/laravel:^7.0 session-tutorial
Krok 2: Přidejte následující tři trasy do trasy / web.php soubor.
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');
Krok 3: Spuštěním následujícího příkazu v příkazovém řádku vytvořte SessionController a upravte stávající kód, jak je znázorněno níže:
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.'; } }
Krok 4: Navštivte následující adresy URL v daném pořadí na soubor , dostat, a vymazat data relace.
Poznámka : Následující adresy URL se mohou lišit od vašich.
# 1) Navštivte následující adresu URL na nastavit data relace .
http: //session-tutorial.test/session/set
Bude produkovat výstup podobný níže uvedenému snímku obrazovky.
#dva) Navštivte následující adresu URL na získat data relace .
http: //session-tutorial.test/session/get
Bude produkovat výstup podobný níže uvedenému snímku obrazovky.
# 3) Navštivte následující adresu URL na smazat data relace .
http: //session-tutorial.test/session/delete
Bude produkovat výstup podobný níže uvedenému snímku obrazovky.
# 4) Po odstranění dat relace znovu navštivte následující adresu URL.
http: //session-tutorial.test/session/get
Bude produkovat výstup podobný níže uvedenému snímku obrazovky.
Ověřování laravel
Ověření laravel je jednoduché. Je zvyklý identifikovat uživatele . Obvykle je toho dosaženo identifikace uživatelského jména a hesla uživatele . Pokud jsou pověření uživatele označena jako platná, pak se o uživateli říká, že je ověřený uživatel .
The config / auth.php file je konfigurační soubor autentizace. Laravelská autentizace se skládá z stráže a poskytovatelé .
Stráže: Definuje, jak jsou uživatelé ověřováni pro každý požadavek.
Poskytovatelé: Definuje, jak se uživatelé načítají z vašeho trvalého úložiště.
Dále můžete podle potřeby definovat další poskytovatele. Není však nutné měnit výchozí konfiguraci ověřování.
Vezměte prosím na vědomí, že v tomto tutoriálu jsme podrobně nemluvili o strážcích a poskytovatelích.
Příklad autentizace
V tomto příkladu jsme vytvořili jednoduchý ověřovací systém Laravel 7.
Krok 1: Spuštěním následujícího příkazu v příkazovém řádku vytvořte projekt Laravel s názvem tutoriál ověřování .
composer create-project --prefer-dist laravel/laravel:^7.0 auth-tutorial
Krok 2: Připojte svůj projekt k databázi a spusťte následující příkaz v příkazovém řádku ke spuštění výchozích migrací.
php artisan migrate
Krok 3: Spusťte následující příkaz v příkazovém řádku a nainstalujte Balíček uživatelského rozhraní Laravel .
composer require laravel/ui
Krok 4: Dalším krokem je generování ověřovací lešení s Bootstrap, View, nebo Reagovat . Můžeš běžet jeden z následujících příkazů vytvořit ověřovací lešení.
Spusťte následující příkaz v příkazovém řádku a vygenerujte pomocí něj ověřovací lešení Bootstrap .
php artisan ui bootstrap --auth
Spusťte následující příkaz v příkazovém řádku a vygenerujte pomocí něj ověřovací lešení Pohled .
php artisan ui vue --auth
Spusťte následující příkaz v příkazovém řádku a vygenerujte pomocí něj ověřovací lešení Reagovat .
php artisan ui react --auth
Krok 5: Spusťte následující dva příkazy v příkazovém řádku a zkompilujte nové lešení instalací npm závislosti .
npm install npm run dev
Krok 6: Navštivte následující adresy URL a otestujte ověřování vytvořením nového uživatele (registrace nového uživatele) a přihlášením do systému. Chcete-li otestovat ověřování, můžete zkusit platná i neplatná data.
Poznámka : Následující adresy URL se mohou lišit od vašich.
co je klíč bezdrátové sítě
Nejprve musíte zaregistrovat nového uživatele. Chcete-li zaregistrovat nového uživatele, navštivte následující adresu URL a vytvoří se výstup podobný níže uvedenému snímku obrazovky.
http: //auth-tutorial.test/register
Po registraci nového uživatele se přihlaste do systému na následující adrese URL a vytvoří se výstup podobný níže uvedenému snímku obrazovky.
http: //auth-tutorial.test/login
Úspěšné přihlášení uživatele přesměruje na domovská stránka / dashboard Jak je ukázáno níže.
Oprávnění laravel
Jednoduše řečeno, oprávnění ověří, zda ověření uživatelé mají potřebná oprávnění pro přístup k požadovaným zdrojům .
Příklad povolení
V tomto příkladu jsme vytvořili jednoduchý autorizační systém Laravel 7.
Krok 1: Spuštěním následujícího příkazu v příkazovém řádku vytvořte projekt Laravel s názvem autorizační návod .
composer create-project --prefer-dist laravel/laravel:^7.0 authorization-tutorial
Krok 2: Připojte svůj projekt k databázi.
Krok 3: Spusťte následující příkaz v příkazovém řádku a vytvořte add_role_column_to_users_table migrace a upravte stávající kód, jak je znázorněno níže:
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) { // }); } }
Krok 4: Spuštěním následujícího příkazu v příkazovém řádku spusťte všechny migrace.
php artisan migrate
Krok 5: Přidejte ukázková data do Uživatelé tabulka pomocí dráteník Jak je ukázáno níže:
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
Krok 6: Spusťte následující příkaz v příkazovém řádku a nainstalujte Balíček uživatelského rozhraní Laravel .
composer require laravel/ui
Krok 7: Dalším krokem je generování ověřovací lešení s Bootstrap, View, nebo Reagovat . Můžeš běžet jeden z následujících příkazů vytvořit ověřovací lešení.
Spusťte následující příkaz v příkazovém řádku a vygenerujte pomocí něj ověřovací lešení Bootstrap .
php artisan ui bootstrap --auth
Spusťte následující příkaz v příkazovém řádku a vygenerujte pomocí něj ověřovací lešení Pohled .
php artisan ui vue --auth
Spusťte následující příkaz v příkazovém řádku a vygenerujte pomocí něj ověřovací lešení Reagovat .
php artisan ui react --auth
Krok 8: Spusťte následující dva příkazy v příkazovém řádku a zkompilujte nové lešení instalací npm závislosti .
npm install npm run dev
Krok 9: Otevři AuthServiceProvider.php soubor na Aplikace / Poskytovatelé a upravte stávající kód, jak je znázorněno níže:
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'; }); } }
Krok 10: Upravte stávající kód v home.blade.php soubor, jak je znázorněno níže:
@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
Krok 11: Navštivte následující adresu URL a vytvoří se výstup podobný následujícímu snímku obrazovky. Poté se přihlaste do systému jako správce, správce a jeden po druhém.
Poznámka : Následující adresy URL se mohou lišit od vašich.
http: //authorization-tutorial.test/login
- Přihlášení správce
Pokud jste přihlášeni jako admin , pak bude výstup podobný následujícímu snímku obrazovky.
- Přihlášení správce
Pokud jste přihlášeni jako manažer , pak bude výstup podobný následujícímu snímku obrazovky.
- Uživatelské přihlášení
Pokud jste přihlášeni jako uživatel , pak bude výstup podobný následujícímu snímku obrazovky.
Odesílání e-mailů v laravel
Co je Mailtrap
Existuje několik bezplatných online nástrojů pro testování e-mailů v Laravelu a Poštovní past je jeden takový nástroj. Mailtrap používá k testování e-mailů falešný server SMTP. Přijímá e-maily od místního hostitele, který umožňuje vývojářům nebo testerům otestovat, jak budou e-maily sdíleny, než je odešlete do skutečných doručených.
Příklad odesílání e-mailů
Uděláme jednoduchý příklad pomocí Poštovní past .
Krok 1: Spuštěním následujícího příkazu v příkazovém řádku vytvořte projekt Laravel s názvem e-mailový tutoriál .
composer create-project --prefer-dist laravel/laravel:^7.0 email-tutorial
Krok 2: Navštivte URL a vytvořte nový účet Mailtrap nebo se přihlaste k účtu Mailtrap, pokud již jeden máte.
Krok 3: Po přihlášení do účtu Mailtrap,
# 1) Klikněte na Ukázková doručená pošta .
#dva) Určete Uživatelské jméno a Heslo pod SMTP . Toto uživatelské jméno a heslo jsou jedinečné a použijeme je v dalším kroku.
Poznámka: Navštivte URL dozvědět se více o Mailtrapu.
Krok 4: Otevři . env soubor a zadejte svůj Poštovní past uživatelské jméno a heslo.
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}'
Krok 5: Přidejte následující dvě trasy do trasy / web.php soubor.
Route::get('/contact', 'ContactController@contact')->name('contact'); Route::post('/contact', 'ContactController@sendContactForm')->name('contact.send');
Krok 6: Spuštěním následujícího příkazu v příkazovém řádku vytvořte FileUploadController a upravte stávající kód, jak je znázorněno níže.
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!'); } }
Krok 7: Spuštěním následujícího příkazu v příkazovém řádku vytvořte Kontaktujte mail třída. Tento příkaz vytvoří soubor s názvem ContactMail.php v Aplikace / Pošta adresář.
php artisan make:mail ContactMail
Krok 8: Upravte stávající kód v ContactMail.php soubor, jak je uvedeno níže.
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); } }
Krok 9: Vytvořte následující soubory zobrazení a přidejte kódy.
# 1) Vytvořte contact.blade.php soubor a přidejte následující kód.
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
#dva) Vytvořte contact-template.blade.php soubor a přidejte následující kód.
Name: {{ $data['name'] }}
Subject: {{ $data['subject'] }}
Message: {{ $data['message'] }}
Krok 10: Navštivte následující adresu URL a vytvoří se výstup podobný následujícímu snímku obrazovky.
Poznámka : Následující adresa URL se může lišit od vaší.
http: //email-tutorial.test/contact
Krok 11: Vyplňte formulář a odešlete.
Krok 12: Nyní navštivte Poštovní past účet a zkontrolujte doručenou poštu. Ve vaší doručené poště uvidíte novou zprávu podobnou obrazovce níže.
Závěr
Nahrání souboru laravel je snadné a vývojář může také nastavit oprávnění souboru laravel. Laravel poskytuje snadný způsob, jak nastavit, získat a odstranit data relace. Laravelské ověřování pomáhá identifikovat uživatele, zatímco Laravelské ověřování ověřuje, zda mají ověření uživatelé oprávnění k přístupu k požadovaným zdrojům.
Můžeme použít nástroje jako Mailtrap k testování e-mailů před jejich odesláním do skutečných doručených.
Doufáme, že vám tento návod pomohl! Doufám, že se znovu uvidíme v dalším tutoriálu, kde budeme diskutovat Laravel kovárna a sbírky .
Šťastné učení!
<< PREV Tutorial | DALŠÍ výukový program >>
Doporučené čtení
- Výukový program pro laravel PHP pro začátečníky: Co je to Laravel Framework
- Výukový program Laravel Collection and Laravel Forge
- Laravel databáze, migrace, výmluvný ORM a Tinker
- Laravelské formuláře a ověřovací pravidla s příkladem
- Unixová oprávnění pro přístup k souborům: Unix Chmod, Chown a Chgrp
- Oprávnění Unix: Oprávnění k souborům v Unixu s příklady
- Jak nahrát soubor pomocí selenového webového ovladače - 3 metody
- Manipulace se soubory v systému Unix: Přehled systému souborů Unix