laravel session file upload download
Questo tutorial copre la sessione Laravel, il caricamento di file, il download, i permessi dei file, l'autenticazione e l'autorizzazione di Laravel, l'invio di e-mail, ecc. Con esempi:
Nel Moduli Laravel e regole di convalida tutorial di Serie di tutorial Laravel , abbiamo imparato a conoscere diversi elementi del modulo con esempi.
Più avanti in questo tutorial, abbiamo anche discusso su come impostare, ottenere, eliminare i dati della sessione nelle sessioni Laravel e come inviare e-mail tramite Mailtrap in dettaglio.
Per tutti gli esempi abbiamo utilizzato Laravel versione 7 .
fase di progettazione del ciclo di vita dello sviluppo del software
Prerequisiti
Nei nostri tutorial precedenti, abbiamo coperto caratteristiche di base di Laravel , gestione del database, e gestione dei moduli e devi avere familiarità con questi argomenti per una migliore comprensione di questo tutorial.
Cominciamo!
Cosa imparerai:
- Caricamento di file Laravel
- Laravel Session
- Autenticazione Laravel
- Autorizzazione Laravel
- Invio di e-mail in Laravel
- Conclusione
Caricamento di file Laravel
Il caricamento di file in Laravel è facile. Lo sviluppatore può anche specificare Laravel permessi sui file come i tipi di file, i limiti di dimensione dei file che possono essere caricati dall'utente, ecc.
Esempio di caricamento di file Laravel
In questo esempio, abbiamo creato un semplice modulo con convalida per caricare i file.
Passo 1: Esegui il seguente comando nel prompt dei comandi per creare un progetto Laravel denominato file-uploading-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 file-uploading-tutorial
Passo 2: Aggiungi i seguenti due percorsi al file route / web.php file.
Route::get('file/upload','FileUploadController@create')->name('file.create'); Route::post('file/upload','FileUploadController@store')->name('file.store');
Passaggio 3: Eseguire il seguente comando nel prompt dei comandi per creare FileUploadController e modificare il codice esistente come mostrato di seguito.
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); } }
Passaggio 4: Crea un file di visualizzazione denominato create.blade.php e aggiungi il codice seguente:
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
Passaggio 5: Crea una cartella denominata caricamenti di file nel pubblico cartella. È la cartella in cui vengono archiviati i file caricati.
Passaggio 6: Visita il seguente URL e produrrà un output simile allo screenshot qui sotto.
Nota : Il seguente URL potrebbe essere diverso dal tuo.
http: //file-uploading-tutorial.test/file/upload
Passaggio 7: Ora puoi caricare un file valido e inviare il modulo. Verifica che il file caricato sia archiviato nel file caricamenti di file cartella. Puoi anche provare a caricare un file non valido (file con un tipo di file non valido e / o il limite di dimensione del file superato) e inviare il modulo per verificare la convalida.
Nell'esempio precedente, all'utente è consentito solo inviare doc , docx , diciannovesimo , csv, e PDF file con una dimensione massima di 1024 byte .
Esempio 1: Caricamento di un file pdf di dimensioni inferiori a 1024 byte.
Esempio 2: Caricamento di un file immagine (PNG, JPEG, ecc.).
Esempio 3: Caricamento di un file pdf di dimensioni superiori a 1024 byte.
Laravel Session
PER sessione è abituato a memorizzare i dati degli utenti su più richieste degli utenti . Aiuta a tenere traccia degli utenti del sito web . La configurazione della sessione di Laravel può essere eseguita in config / session.php file. Per impostazione predefinita, il driver di file viene utilizzato per gestire i dati della sessione.
Recupero dei dati della sessione Laravel
Innanzitutto, è necessario ottenere un'istanza di una sessione a cui è possibile accedere tramite una richiesta HTTP. Quindi, usa il file ottenere() metodo per accedere ai dati.
$session_data = $request->session()->get('key');
Archiviazione dei dati nella sessione Laravel
Esistono due modi per memorizzare i dati in una sessione.
# 1) Usando il mettere() metodo: questo metodo memorizza i dati tramite un'istanza di richiesta.
$request->session()->put('key', 'value');
#Due) Utilizzando sessione helper: questo metodo memorizza i dati tramite l'helper globale.
session(('key' => 'value'));
Eliminazione dei dati della sessione Laravel
Il dimenticato () viene utilizzato per eliminare dati specifici dalla sessione.
$request->session()->forget(key);
Il sciacquone() viene utilizzato per eliminare tutti i dati dalla sessione.
Dati Flash utilizzando Laravel Session
Il veloce() viene utilizzato anche per memorizzare i dati in una sessione ma è disponibile solo per la successiva richiesta HTTP.
$request->session()->flash('status', Successful!');
Esempio di sessione Laravel
Impariamo come farlo impostare, ottenere, e Elimina dati di sessione utilizzando un semplice esempio di sessione.
Passo 1: Esegui il seguente comando nel prompt dei comandi per creare un progetto Laravel denominato sessione-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 session-tutorial
Passo 2: Aggiungi i seguenti tre percorsi nel file route / web.php file.
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');
Passaggio 3: Eseguire il seguente comando nel prompt dei comandi per creare SessionController e modificare il codice esistente come mostrato di seguito:
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.'; } }
Passaggio 4: Visita i seguenti URL nell'ordine dato a impostato , ottenere, e Elimina dati di sessione.
Nota : I seguenti URL potrebbero differire dai tuoi.
# 1) Visita il seguente URL a impostare i dati della sessione .
http: //session-tutorial.test/session/set
Produrrà un output simile allo screenshot qui sotto.
#Due) Visita il seguente URL a ottenere i dati della sessione .
http: //session-tutorial.test/session/get
Produrrà un output simile allo screenshot qui sotto.
# 3) Visita il seguente URL a eliminare i dati della sessione .
http: //session-tutorial.test/session/delete
Produrrà un output simile allo screenshot qui sotto.
# 4) Dopo aver eliminato i dati della sessione, rivisitare il seguente URL.
http: //session-tutorial.test/session/get
Produrrà un output simile allo screenshot qui sotto.
Autenticazione Laravel
L'autenticazione Laravel è semplice. È abituato identificare gli utenti . Di solito, si ottiene da identificare il nome utente e la password dell'utente . Se le credenziali dell'utente vengono identificate come valide, si dice che l'utente è un utente autenticato .
Il config / auth.php file è il file di configurazione dell'autenticazione. L'autenticazione Laravel consiste in guardie ✔ e fornitori .
Guardie ✔: Definisce il modo in cui gli utenti vengono autenticati per ciascuna richiesta.
Fornitori: Definisce il modo in cui gli utenti vengono recuperati dalla memoria persistente.
Inoltre, puoi anche definire fornitori aggiuntivi, se necessario. Tuttavia, non è necessario modificare la configurazione di autenticazione predefinita.
Si prega di notare che non abbiamo discusso in dettaglio guardie e fornitori in questo tutorial.
Esempio di autenticazione
In questo esempio, abbiamo creato un semplice sistema di autenticazione Laravel 7.
Passo 1: Esegui il seguente comando nel prompt dei comandi per creare un progetto Laravel denominato auth-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 auth-tutorial
Passo 2: Connetti il tuo progetto al database ed esegui il seguente comando nel prompt dei comandi per eseguire le migrazioni predefinite.
php artisan migrate
Passaggio 3: Eseguire il seguente comando nel prompt dei comandi per installare il file Pacchetto dell'interfaccia utente Laravel .
composer require laravel/ui
Passaggio 4: Il prossimo passo è generare ponteggi aut con Bootstrap, Visualizza, o Reagire . Puoi correre uno dei seguenti comandi per creare scaffolding di autenticazione.
Eseguire il comando seguente nel prompt dei comandi per generare lo scaffolding di autorizzazione con Bootstrap .
php artisan ui bootstrap --auth
Eseguire il comando seguente nel prompt dei comandi per generare lo scaffolding di autenticazione con Visualizza .
php artisan ui vue --auth
Eseguire il comando seguente nel prompt dei comandi per generare lo scaffolding di autenticazione con Reagire .
php artisan ui react --auth
Passaggio 5: Eseguire i seguenti due comandi nel prompt dei comandi per compilare il nuovo scaffolding installando dipendenze npm .
npm install npm run dev
Passaggio 6: Visitare i seguenti URL per testare l'autenticazione creando un nuovo utente (registrando un nuovo utente) e accedendo al sistema. Puoi provare dati validi e non validi per testare l'autenticazione.
Nota : I seguenti URL potrebbero differire dai tuoi.
Innanzitutto, devi registrare un nuovo utente. Visita il seguente URL per registrare un nuovo utente e produrrà un output simile allo screenshot qui sotto.
http: //auth-tutorial.test/register
Dopo aver registrato un nuovo utente, accedi al sistema visitando il seguente URL e produrrà un output simile allo screenshot qui sotto.
http: //auth-tutorial.test/login
Un accesso riuscito reindirizzerà l'utente al file home page / dashboard come mostrato di seguito.
Autorizzazione Laravel
In parole povere, autorizzazione verifica se il file gli utenti autenticati dispongono dell'autorizzazione necessaria per accedere alle risorse richieste .
Esempio di autorizzazione
In questo esempio, abbiamo creato un semplice sistema di autorizzazione Laravel 7.
Passo 1: Esegui il seguente comando nel prompt dei comandi per creare un progetto Laravel denominato autorizzazione-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 authorization-tutorial
Passo 2: Collega il tuo progetto al database.
Passaggio 3: Eseguire il seguente comando nel prompt dei comandi per creare il file add_role_column_to_users_table migrazione e modifica il codice esistente come mostrato di seguito:
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) { // }); } }
Passaggio 4: Eseguire il seguente comando nel prompt dei comandi per eseguire tutte le migrazioni.
php artisan migrate
Passaggio 5: Aggiungi dati di esempio al file Utenti tabella utilizzando armeggiare come mostrato di seguito:
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
Passaggio 6: Eseguire il seguente comando nel prompt dei comandi per installare il file Pacchetto dell'interfaccia utente Laravel .
composer require laravel/ui
Passaggio 7: Il prossimo passo è generare ponteggi aut con Bootstrap, Visualizza, o Reagire . Puoi correre uno dei seguenti comandi per creare scaffolding di autenticazione.
Eseguire il comando seguente nel prompt dei comandi per generare lo scaffolding di autenticazione con Bootstrap .
php artisan ui bootstrap --auth
Eseguire il comando seguente nel prompt dei comandi per generare lo scaffolding di autenticazione con Visualizza .
php artisan ui vue --auth
Eseguire il comando seguente nel prompt dei comandi per generare lo scaffolding di autenticazione con Reagire .
php artisan ui react --auth
Passaggio 8: Eseguire i seguenti due comandi nel prompt dei comandi per compilare il nuovo scaffolding installando dipendenze npm .
npm install npm run dev
Passaggio 9: Apri il AuthServiceProvider.php file in App / fornitori e modificare il codice esistente come mostrato di seguito:
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'; }); } }
Passaggio 10: Modifica il codice esistente in home.blade.php file come mostrato di seguito:
@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
Passaggio 11: Visita il seguente URL e produrrà un output simile allo screenshot qui sotto. Quindi, accedi al sistema come amministratore, gestore e utente uno alla volta.
Nota : I seguenti URL potrebbero differire dai tuoi.
http: //authorization-tutorial.test/login
- Accesso amministratore
Se hai effettuato l'accesso come admin , quindi l'output sarà simile allo screenshot seguente.
- Accesso manager
Se hai effettuato l'accesso come manager , quindi l'output sarà simile allo screenshot seguente.
- Login utente
Se hai effettuato l'accesso come utente , quindi l'output sarà simile allo screenshot seguente.
Invio di e-mail in Laravel
Cos'è Mailtrap
Sono disponibili diversi strumenti online gratuiti per testare le e-mail in Laravel e Mailtrap è uno di questi strumenti. Mailtrap utilizza un falso server SMTP per testare le e-mail. Accetta e-mail dall'host locale che consente allo sviluppatore o al tester di testare come verranno condivise le e-mail prima di inviarle a caselle di posta reali.
Esempio di invio di e-mail
Facciamo un semplice esempio utilizzando Mailtrap .
Passo 1: Esegui il seguente comando nel prompt dei comandi per creare un progetto Laravel denominato email-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 email-tutorial
Passo 2: Visitare il URL e crea un nuovo account Mailtrap o accedi all'account Mailtrap se ne hai già uno.
Passaggio 3: Dopo aver effettuato l'accesso all'account Mailtrap,
# 1) Clicca su Posta in arrivo demo .
#Due) Identifica il Nome utente e Parola d'ordine sotto SMTP . Questo nome utente e password sono univoci e li utilizzeremo nel passaggio successivo.
Nota: Visitare il URL per saperne di più su Mailtrap.
Passaggio 4: Apri il . env file e inserisci il tuo Mailtrap nome utente e password.
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}'
Passaggio 5: Aggiungi i seguenti due percorsi al file route / web.php file.
Route::get('/contact', 'ContactController@contact')->name('contact'); Route::post('/contact', 'ContactController@sendContactForm')->name('contact.send');
Passaggio 6: Eseguire il seguente comando nel prompt dei comandi per creare FileUploadController e modificare il codice esistente come mostrato di seguito.
php artisan make: controller ContactController
il modo migliore per scaricare da YouTube in mp3
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!'); } }
Passaggio 7: Eseguire il seguente comando nel prompt dei comandi per creare ContactMail classe. Questo comando creerà un file denominato ContactMail.php nel App / posta directory.
php artisan make:mail ContactMail
Passaggio 8: Modifica il codice esistente in ContactMail.php file come mostrato di seguito.
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); } }
Passaggio 9: Crea i seguenti file di visualizzazione e aggiungi i codici.
# 1) Crea il file contact.blade.php file e aggiungi il codice seguente.
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
#Due) Crea il file contact-template.blade.php file e aggiungi il codice seguente.
Name: {{ $data('name') }}
Subject: {{ $data('subject') }}
Message: {{ $data('message') }}
Passaggio 10: Visita il seguente URL e produrrà un output simile allo screenshot qui sotto.
Nota : Il seguente URL potrebbe essere diverso dal tuo.
http: //email-tutorial.test/contact
Passaggio 11: Compila il modulo e invia.
Passaggio 12: Ora visita il tuo Mailtrap account e controlla la posta in arrivo. Vedrai un nuovo messaggio nella tua posta in arrivo simile allo screenshot qui sotto.
Conclusione
Il caricamento del file Laravel è facile e lo sviluppatore può anche impostare i permessi del file Laravel. Laravel fornisce un modo semplice per impostare, ottenere ed eliminare i dati della sessione. L'autenticazione Laravel aiuta a identificare gli utenti mentre l'autorizzazione Laravel verifica se gli utenti autenticati hanno il permesso di accedere alle risorse richieste.
Possiamo utilizzare strumenti come Mailtrap per testare le e-mail prima di inviarle alle effettive caselle di posta.
Ci auguriamo che questo tutorial ti sia stato utile! Spero di rivedervi nel prossimo tutorial di cui parleremo Fucina e collezioni Laravel .
Buon apprendimento!
<< PREV Tutorial | PROSSIMO Tutorial >>
Lettura consigliata
- Tutorial PHP Laravel per principianti: cos'è Laravel Framework
- Collezione Laravel e tutorial Laravel Forge
- Database Laravel, migrazioni, ORM eloquente e Tinker
- Moduli Laravel e regole di convalida con esempio
- Autorizzazioni di accesso ai file Unix: Unix Chmod, Chown e Chgrp
- Autorizzazioni Unix: Autorizzazioni file in Unix con esempi
- Come caricare file utilizzando Selenium Webdriver - 3 metodi
- Manipolazione dei file in Unix: panoramica del file system Unix