laravel session file upload download
Dieses Tutorial behandelt die Laravel-Sitzung, das Hochladen, Herunterladen von Dateien, die Dateiberechtigung, die Laravel-Authentifizierung und -Autorisierung, das Senden von E-Mails usw. mit Beispielen:
In dem Laravel-Formulare und Validierungsregeln Tutorial der Laravel Tutorial-Serie haben wir anhand von Beispielen verschiedene Formelemente kennengelernt.
Weiter in diesem Tutorial haben wir auch besprochen, wie es geht Sitzungsdaten setzen, abrufen, löschen unter Laravel-Sitzungen und wie man E-Mails über sendet Mailtrap im Detail.
Für alle Beispiele haben wir verwendet Laravel Version 7 .
Wie öffne ich Torrent-Dateien?
Voraussetzungen
In unseren vorherigen Tutorials haben wir behandelt Grundfunktionen von Laravel , Datenbankhandhabung, und Formularhandhabung und Sie müssen mit diesen Themen vertraut sein, um dieses Lernprogramm besser verstehen zu können.
Lass uns anfangen!
Was du lernen wirst:
- Laravel-Datei hochladen
- Laravel-Sitzung
- Laravel-Authentifizierung
- Laravel-Autorisierung
- Senden von E-Mails in Laravel
- Fazit
Laravel-Datei hochladen
Das Hochladen von Dateien in Laravel ist einfach. Der Entwickler kann auch angeben Laravel Dateiberechtigungen wie Dateitypen, Größenbeschränkungen der Dateien, die vom Benutzer hochgeladen werden können usw.
Beispiel für das Hochladen von Laravel-Dateien
In diesem Beispiel haben wir ein einfaches Formular mit Validierung zum Hochladen von Dateien erstellt.
Schritt 1: Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um ein Laravel-Projekt mit dem Namen zu erstellen Datei-Upload-Tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 file-uploading-tutorial
Schritt 2: Fügen Sie die folgenden zwei Routen zum hinzu Routen / web.php Datei.
Route::get('file/upload','FileUploadController@create')->name('file.create'); Route::post('file/upload','FileUploadController@store')->name('file.store');
Schritt 3: Führen Sie den folgenden Befehl in der Eingabeaufforderung aus, um ihn zu erstellen FileUploadController und ändern Sie den vorhandenen Code wie unten gezeigt.
PHP Artisan machen: 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); } }
Schritt 4: Erstellen Sie eine Ansichtsdatei mit dem Namen create.blade.php und fügen Sie den folgenden Code hinzu:
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
Schritt 5: Erstellen Sie einen Ordner mit dem Namen Datei-Uploads in dem Öffentlichkeit Mappe. Dies ist der Ordner, in dem hochgeladene Dateien gespeichert werden.
Schritt 6: Besuchen Sie die folgende URL und es wird eine Ausgabe ähnlich dem folgenden Screenshot erzeugt.
Hinweis : Die folgende URL kann von Ihrer abweichen.
http: //file-uploading-tutorial.test/file/upload
Schritt 7: Jetzt können Sie eine gültige Datei hochladen und das Formular senden. Stellen Sie sicher, dass die hochgeladene Datei im gespeichert ist Datei-Uploads Mappe. Sie können auch versuchen, eine ungültige Datei hochzuladen (Datei mit einem ungültigen Dateityp und / oder einer ungültigen Größenbeschränkung) und das Formular senden, um die Validierung zu überprüfen.
Im obigen Beispiel darf der Benutzer nur senden doc , docx , neunzehnten , csv, und pdf Dateien mit einer maximalen Größe von 1024 Bytes .
Beispiel 1: Hochladen einer PDF-Datei mit einer Größe von weniger als 1024 Byte.
Beispiel 2: Hochladen einer Bilddatei (PNG, JPEG usw.).
Beispiel 3: Hochladen einer PDF-Datei mit einer Größe von mehr als 1024 Byte.
Laravel-Sitzung
ZU Session wird benutzt um Speichern Sie Benutzerdaten über mehrere Benutzeranforderungen hinweg . Es hilft zu Verfolgen Sie die Benutzer der Website . Die Konfiguration der Laravel-Sitzung kann in der erfolgen config / session.php Datei. Standardmäßig ist die Dateitreiber wird verwendet, um Sitzungsdaten zu verarbeiten.
Abrufen von Laravel-Sitzungsdaten
Zunächst müssen Sie eine Instanz einer Sitzung abrufen, auf die über eine HTTP-Anforderung zugegriffen werden kann. Verwenden Sie dann die erhalten() Methode für den Zugriff auf Daten.
$session_data = $request->session()->get('key');
Speichern von Daten in einer Laravel-Sitzung
Es gibt zwei Möglichkeiten, Daten in einer Sitzung zu speichern.
# 1) Verwendung der stellen() Methode - Diese Methode speichert Daten über eine Anforderungsinstanz.
$request->session()->put('key', 'value');
#zwei) Verwenden von Session Helfer - Diese Methode speichert Daten über den globalen Helfer.
session(('key' => 'value'));
Laravel-Sitzungsdaten löschen
Das vergessen() Methode wird verwendet, um bestimmte Daten aus der Sitzung zu löschen.
$request->session()->forget(key);
Das spülen() Methode wird verwendet, um alle Daten aus der Sitzung zu löschen.
Flash-Daten mit Laravel-Sitzung
Das Blitz() Die Methode wird auch zum Speichern von Daten in einer Sitzung verwendet, ist jedoch nur für die nächste HTTP-Anforderung verfügbar.
$request->session()->flash('status', Successful!');
Beispiel für eine Laravel-Sitzung
Lass uns lernen, wie es geht setzen, bekommen, und löschen Sitzungsdaten anhand eines einfachen Sitzungsbeispiels.
Schritt 1: Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um ein Laravel-Projekt mit dem Namen zu erstellen Session-Tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 session-tutorial
Schritt 2: Fügen Sie die folgenden drei Routen hinzu Routen / web.php Datei.
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');
Schritt 3: Führen Sie den folgenden Befehl in der Eingabeaufforderung aus, um ihn zu erstellen SessionController und ändern Sie den vorhandenen Code wie folgt:
PHP Artisan machen: 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.'; } }
Schritt 4: Besuchen Sie die folgenden URLs in der angegebenen Reihenfolge einstellen , erhalten, und löschen Sitzungsdaten.
Hinweis :: Die folgenden URLs können von Ihren abweichen.
# 1) Besuchen Sie die folgende URL zu Sitzungsdaten festlegen .
http: //session-tutorial.test/session/set
Es wird eine Ausgabe ähnlich dem folgenden Screenshot erzeugt.
#zwei) Besuchen Sie die folgende URL zu Sitzungsdaten abrufen .
http: //session-tutorial.test/session/get
Es wird eine Ausgabe ähnlich dem folgenden Screenshot erzeugt.
#3) Besuchen Sie die folgende URL zu Sitzungsdaten löschen .
http: //session-tutorial.test/session/delete
Es wird eine Ausgabe ähnlich dem folgenden Screenshot erzeugt.
# 4) Überprüfen Sie nach dem Löschen der Sitzungsdaten die folgende URL erneut.
http: //session-tutorial.test/session/get
Es wird eine Ausgabe ähnlich dem folgenden Screenshot erzeugt.
Laravel-Authentifizierung
Die Laravel-Authentifizierung ist einfach. Es ist daran gewöhnt Benutzer identifizieren . In der Regel wird es erreicht durch Identifizieren des Benutzernamens und des Passworts des Benutzers . Wenn die Benutzeranmeldeinformationen als gültig identifiziert werden, wird der Benutzer als bezeichnet authentifizierter Nutzer .
Das config / auth.php Datei ist die Authentifizierungskonfigurationsdatei. Die Laravel-Authentifizierung besteht aus Wachen und Anbieter .
Wachen: Es definiert, wie Benutzer für jede Anforderung authentifiziert werden.
Anbieter: Es definiert, wie Benutzer aus Ihrem dauerhaften Speicher abgerufen werden.
Darüber hinaus können Sie bei Bedarf weitere Anbieter definieren. Die Standardauthentifizierungskonfiguration muss jedoch nicht geändert werden.
Bitte beachte, dass Wir haben Wachen und Anbieter in diesem Tutorial nicht im Detail besprochen.
Authentifizierungsbeispiel
In diesem Beispiel haben wir ein einfaches Laravel 7-Authentifizierungssystem erstellt.
Schritt 1: Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um ein Laravel-Projekt mit dem Namen zu erstellen Auth-Tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 auth-tutorial
Schritt 2: Verbinden Sie Ihr Projekt mit der Datenbank und führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um Standardmigrationen auszuführen.
php artisan migrate
Schritt 3: Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um das zu installieren Laravel UI-Paket .
composer require laravel/ui
Schritt 4: Der nächste Schritt ist das Generieren Auth Gerüst mit Bootstrap, Ansicht, oder Reagieren . Du kannst rennen einer der folgenden Befehle Auth-Gerüst erstellen.
Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um ein Auth-Gerüst mit zu generieren Bootstrap .
php artisan ui bootstrap --auth
Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um ein Auth-Gerüst mit zu generieren Aussicht .
php artisan ui vue --auth
Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um ein Auth-Gerüst mit zu generieren Reagieren .
php artisan ui react --auth
Schritt 5: Führen Sie die folgenden zwei Befehle an der Eingabeaufforderung aus, um das neue Gerüst durch Installation zu kompilieren npm-Abhängigkeiten .
npm install npm run dev
Schritt 6: Besuchen Sie die folgenden URLs, um die Authentifizierung zu testen, indem Sie einen neuen Benutzer erstellen (einen neuen Benutzer registrieren) und sich beim System anmelden. Sie können sowohl gültige als auch ungültige Daten testen, um die Authentifizierung zu testen.
Hinweis :: Die folgenden URLs können von Ihren abweichen.
Zunächst müssen Sie einen neuen Benutzer registrieren. Besuchen Sie die folgende URL, um einen neuen Benutzer zu registrieren. Die Ausgabe erfolgt ähnlich wie im folgenden Screenshot.
http: //auth-tutorial.test/register
Melden Sie sich nach der Registrierung eines neuen Benutzers unter der folgenden URL beim System an. Die Ausgabe erfolgt ähnlich wie im folgenden Screenshot.
http: //auth-tutorial.test/login
Bei erfolgreicher Anmeldung wird der Benutzer zu weitergeleitet Homepage / Dashboard Wie nachfolgend dargestellt.
Laravel-Autorisierung
In einfachen Worten, Genehmigung überprüft, ob die Authentifizierte Benutzer haben die erforderliche Berechtigung, um auf die angeforderten Ressourcen zuzugreifen .
Autorisierungsbeispiel
In diesem Beispiel haben wir ein einfaches Laravel 7-Autorisierungssystem erstellt.
Schritt 1: Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um ein Laravel-Projekt mit dem Namen zu erstellen Autorisierungs-Tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 authorization-tutorial
Schritt 2: Verbinden Sie Ihr Projekt mit der Datenbank.
Schritt 3: Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um das zu erstellen add_role_column_to_users_table Migration und Änderung des vorhandenen Codes wie unten gezeigt:
PHP Artisan machen: 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) { // }); } }
Schritt 4: Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um alle Migrationen auszuführen.
php artisan migrate
Schritt 5: Fügen Sie dem Beispielbeispieldaten hinzu Benutzer Tabelle mit basteln Wie nachfolgend dargestellt:
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
Schritt 6: Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um das zu installieren Laravel UI-Paket .
composer require laravel/ui
Schritt 7: Der nächste Schritt ist das Generieren Auth Gerüst mit Bootstrap, Ansicht, oder Reagieren . Du kannst rennen einer der folgenden Befehle Auth-Gerüst erstellen.
Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um ein Auth-Gerüst mit zu generieren Bootstrap .
php artisan ui bootstrap --auth
Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um ein Auth-Gerüst mit zu generieren Aussicht .
php artisan ui vue --auth
Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um ein Auth-Gerüst mit zu generieren Reagieren .
php artisan ui react --auth
Schritt 8: Führen Sie die folgenden zwei Befehle an der Eingabeaufforderung aus, um das neue Gerüst durch Installation zu kompilieren npm-Abhängigkeiten .
npm install npm run dev
Schritt 9: Öffne das AuthServiceProvider.php Datei bei App / Anbieter und ändern Sie den vorhandenen Code wie folgt:
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'; }); } }
Schritt 10: Ändern Sie den vorhandenen Code in der home.blade.php Datei wie unten gezeigt:
@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
Schritt 11: Besuchen Sie die folgende URL und es wird eine Ausgabe ähnlich dem folgenden Screenshot erzeugt. Melden Sie sich dann einzeln als Administrator, Manager und Benutzer beim System an.
Hinweis : Die folgenden URLs können von Ihren abweichen.
http: //authorization-tutorial.test/login
- Admin Login
Wenn Sie als angemeldet sind Administrator Dann ähnelt die Ausgabe dem folgenden Screenshot.
- Manager Login
Wenn Sie als angemeldet sind Manager Dann ähnelt die Ausgabe dem folgenden Screenshot.
- Benutzer-Anmeldung
Wenn Sie als angemeldet sind Nutzer Dann ähnelt die Ausgabe dem folgenden Screenshot.
Senden von E-Mails in Laravel
Was ist Mailtrap?
Es gibt mehrere kostenlose Online-Tools zum Testen von E-Mails in Laravel und Mailtrap ist ein solches Werkzeug. Mailtrap verwendet einen gefälschten SMTP-Server zum Testen von E-Mails. Es werden E-Mails vom lokalen Host akzeptiert, mit denen der Entwickler oder Tester testen kann, wie E-Mails freigegeben werden, bevor sie an echte Posteingänge gesendet werden.
Beispiel für das Senden von E-Mails
Lassen Sie uns ein einfaches Beispiel mit verwenden Mailtrap .
Schritt 1: Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um ein Laravel-Projekt mit dem Namen zu erstellen E-Mail-Tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 email-tutorial
Schritt 2: Besuche den URL und erstellen Sie ein neues Mailtrap-Konto oder melden Sie sich bei dem Mailtrap-Konto an, falls Sie bereits eines haben.
Schritt 3: Nachdem Sie sich in das Mailtrap-Konto eingeloggt haben,
# 1) Klicke auf Demo-Posteingang .
#zwei) Identifizieren Sie die Nutzername und Passwort unter SMTP . Dieser Benutzername und dieses Passwort sind eindeutig und werden im nächsten Schritt verwendet.
Hinweis: Besuche den URL um mehr über Mailtrap zu erfahren.
Schritt 4: Öffne das . env Datei und geben Sie Ihre Mailtrap Benutzername und Passwort.
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}'
Schritt 5: Fügen Sie die folgenden zwei Routen zum hinzu Routen / web.php Datei.
Route::get('/contact', 'ContactController@contact')->name('contact'); Route::post('/contact', 'ContactController@sendContactForm')->name('contact.send');
Schritt 6: Führen Sie den folgenden Befehl in der Eingabeaufforderung aus, um ihn zu erstellen FileUploadController und ändern Sie den vorhandenen Code wie unten gezeigt.
PHP Artisan machen: 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!'); } }
Schritt 7: Führen Sie den folgenden Befehl in der Eingabeaufforderung aus, um ihn zu erstellen ContactMail Klasse. Dieser Befehl erstellt eine Datei mit dem Namen ContactMail.php in dem App / Mail Verzeichnis.
php artisan make:mail ContactMail
Schritt 8: Ändern Sie den vorhandenen Code in der ContactMail.php Datei wie unten gezeigt.
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); } }
Schritt 9: Erstellen Sie die folgenden Ansichtsdateien und fügen Sie die Codes hinzu.
# 1) Erstellen Sie die contact.blade.php Datei und fügen Sie den folgenden Code hinzu.
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
#zwei) Erstellen Sie die contact-template.blade.php Datei und fügen Sie den folgenden Code hinzu.
Name: {{ $data('name') }}
Subject: {{ $data('subject') }}
Message: {{ $data('message') }}
Schritt 10: Besuchen Sie die folgende URL und es wird eine Ausgabe ähnlich dem folgenden Screenshot erzeugt.
Hinweis : Die folgende URL kann von Ihrer abweichen.
http: //email-tutorial.test/contact
Schritt 11: Füllen Sie das Formular aus und senden Sie es ab.
Schritt 12: Besuchen Sie jetzt Ihre Mailtrap Konto und überprüfen Sie den Posteingang. In Ihrem Posteingang wird eine neue Nachricht angezeigt, die dem folgenden Screenshot ähnelt.
die beste mp3 downloader app für android
Fazit
Das Hochladen von Laravel-Dateien ist einfach, und der Entwickler kann auch Laravel-Dateiberechtigungen festlegen. Laravel bietet eine einfache Möglichkeit, Sitzungsdaten festzulegen, abzurufen und zu löschen. Die Laravel-Authentifizierung hilft bei der Identifizierung von Benutzern, während die Laravel-Autorisierung überprüft, ob die authentifizierten Benutzer die Berechtigung haben, auf die angeforderten Ressourcen zuzugreifen.
Wir können Tools wie Mailtrap verwenden, um E-Mails zu testen, bevor sie an tatsächliche Posteingänge gesendet werden.
Wir hoffen, Sie fanden dieses Tutorial hilfreich! Wir hoffen, Sie im nächsten Tutorial wieder zu sehen, in dem wir diskutieren werden Laravel Schmiede und Sammlungen .
Viel Spaß beim Lernen!
<< PREV Tutorial | NÄCHSTES Tutorial >>
Literatur-Empfehlungen
- PHP Laravel Tutorial für Anfänger: Was ist Laravel Framework?
- Laravel Collection und Laravel Forge Tutorial
- Laravel-Datenbank, Migrationen, eloquentes ORM und Basteln
- Laravel-Formulare und Validierungsregeln mit Beispiel
- Unix-Dateizugriffsberechtigungen: Unix Chmod, Chown und Chgrp
- Unix-Berechtigungen: Dateiberechtigungen unter Unix mit Beispielen
- Hochladen von Dateien mit Selenium Webdriver - 3 Methoden
- Dateimanipulation unter Unix: Übersicht über das Unix-Dateisystem