laravel session file upload download
Ce tutoriel couvre la session Laravel, le téléchargement de fichiers, le téléchargement, l'autorisation de fichiers, l'authentification et l'autorisation Laravel, l'envoi d'e-mails, etc. avec des exemples:
Dans le Formulaires Laravel et règles de validation tutoriel du Série de didacticiels Laravel , nous avons découvert différents éléments de formulaire avec des exemples.
Plus loin dans ce didacticiel, nous avons également expliqué comment définir, obtenir, supprimer les données de session sous les sessions Laravel, et comment envoyer des e-mails via Mailtrap en détail.
Pour tous les exemples, nous avons utilisé Laravel version 7 .
qu'est-ce qu'un code de sécurité réseau
Conditions préalables
Dans nos tutoriels précédents, nous avons couvert fonctionnalités de base de Laravel , gestion de bases de données, et gestion de formulaire et vous devez vous familiariser avec ces sujets pour mieux comprendre ce didacticiel.
Commençons!
Ce que vous apprendrez:
- Téléchargement de fichier Laravel
- Session de Laravel
- Authentification Laravel
- Autorisation Laravel
- Envoi d'e-mails dans Laravel
- Conclusion
Téléchargement de fichier Laravel
Le téléchargement de fichiers dans Laravel est facile. Le développeur peut également spécifier Laravel autorisations de fichier tels que les types de fichiers, les limites de taille des fichiers pouvant être téléchargés par l'utilisateur, etc.
Exemple de téléchargement de fichier Laravel
Dans cet exemple, nous avons créé un formulaire simple avec validation pour télécharger des fichiers.
Étape 1: Exécutez la commande suivante dans l'invite de commande pour créer un projet Laravel nommé tutoriel de téléchargement de fichiers .
composer create-project --prefer-dist laravel/laravel:^7.0 file-uploading-tutorial
Étape 2: Ajoutez les deux itinéraires suivants au routes / web.php déposer.
Route::get('file/upload','FileUploadController@create')->name('file.create'); Route::post('file/upload','FileUploadController@store')->name('file.store');
Étape 3: Exécutez la commande suivante dans l'invite de commande pour créer FileUploadController et modifiez le code existant comme indiqué ci-dessous.
php artisan make: contrôleur 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); } }
Étape 4: Créez un fichier de vue nommé create.blade.php et ajoutez le code suivant:
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
Étape 5: Créez un dossier nommé téléchargements de fichiers dans le Publique dossier. C'est le dossier dans lequel les fichiers téléchargés sont stockés.
Étape 6: Visitez l'URL suivante, et il produira une sortie similaire à la capture d'écran ci-dessous.
Noter : L'URL suivante peut différer de la vôtre.
http: //file-uploading-tutorial.test/file/upload
Étape 7: Maintenant, vous pouvez télécharger un fichier valide et soumettre le formulaire. Vérifiez que le fichier téléchargé est stocké dans le téléchargements de fichiers dossier. Vous pouvez également essayer de télécharger un fichier invalide (fichier avec un type de fichier invalide et / ou fichier dont la taille est dépassée) et soumettre le formulaire pour vérifier la validation.
Dans l'exemple ci-dessus, l'utilisateur est uniquement autorisé à soumettre doc , docx , dix-neuvième , csv, et pdf fichiers d'une taille maximale de 1024 octets .
Exemple 1: Téléchargement d'un fichier PDF d'une taille inférieure à 1024 octets.
Exemple 2: Téléchargement d'un fichier image (PNG, JPEG, etc.).
Exemple 3: Téléchargement d'un fichier pdf de plus de 1024 octets.
Session de Laravel
À session est utilisé pour stocker les données utilisateur sur plusieurs demandes utilisateur . Cela aide à garder une trace des utilisateurs du site . La configuration de session Laravel peut être effectuée dans le config / session.php déposer. Par défaut, le pilote de fichier est utilisé pour gérer les données de session.
Récupération des données de session Laravel
Tout d'abord, vous devez obtenir une instance d'une session accessible via une requête HTTP. Ensuite, utilisez le obtenir() méthode pour accéder aux données.
$session_data = $request->session()->get('key');
Stockage des données dans la session Laravel
Il existe deux façons de stocker des données dans une session.
#1) En utilisant le mettre() method - Cette méthode stocke les données via une instance de requête.
$request->session()->put('key', 'value');
#deux) Utilisant session helper - Cette méthode stocke les données via l'assistant global.
session(['key' => 'value']);
Suppression des données de session Laravel
Le oublié() est utilisée pour supprimer des données spécifiques de la session.
$request->session()->forget(key);
Le affleurer() est utilisée pour supprimer toutes les données de la session.
Données Flash à l'aide de la session Laravel
Le éclat() est également utilisée pour stocker des données dans une session mais disponible uniquement pour la prochaine requête HTTP.
$request->session()->flash('status', Successful!');
Exemple de session Laravel
Apprenons à définir, obtenir, et effacer données de session à l'aide d'un exemple de session simple.
Étape 1: Exécutez la commande suivante dans l'invite de commande pour créer un projet Laravel nommé session-tutoriel .
composer create-project --prefer-dist laravel/laravel:^7.0 session-tutorial
Étape 2: Ajoutez les trois itinéraires suivants dans le routes / web.php déposer.
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');
Étape 3: Exécutez la commande suivante dans l'invite de commande pour créer SessionController et modifiez le code existant comme indiqué ci-dessous:
php artisan make: contrôleur 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.'; } }
Étape 4: Accédez aux URL suivantes dans l'ordre indiqué pour ensemble , obtenir, et effacer données de session.
Noter : Les URL suivantes peuvent différer des vôtres.
#1) Visitez l'URL suivante pour définir les données de session .
http: //session-tutorial.test/session/set
Il produira une sortie similaire à la capture d'écran ci-dessous.
#deux) Visitez l'URL suivante pour obtenir les données de session .
http: //session-tutorial.test/session/get
Il produira une sortie similaire à la capture d'écran ci-dessous.
# 3) Visitez l'URL suivante pour supprimer les données de session .
http: //session-tutorial.test/session/delete
Il produira une sortie similaire à la capture d'écran ci-dessous.
# 4) Après avoir supprimé les données de session, revisitez l'URL suivante.
http: //session-tutorial.test/session/get
Il produira une sortie similaire à la capture d'écran ci-dessous.
Authentification Laravel
L'authentification Laravel est simple. Il est utilisé pour identifier les utilisateurs . Habituellement, il est réalisé par identifier le nom d'utilisateur et le mot de passe de l'utilisateur . Si les informations d'identification de l'utilisateur sont identifiées comme valides, alors l'utilisateur est dit être un Utilisateur authentifié .
Le config / auth.php file est le fichier de configuration d'authentification. L'authentification Laravel consiste en gardes et fournisseurs .
Gardes: Il définit comment les utilisateurs sont authentifiés pour chaque demande.
Fournisseurs: Il définit la manière dont les utilisateurs sont extraits de votre stockage persistant.
En outre, vous pouvez également définir des fournisseurs supplémentaires si nécessaire. Cependant, il n'est pas nécessaire de modifier la configuration d'authentification par défaut.
Veuillez noter que nous n'avons pas discuté en détail des gardiens et des fournisseurs dans ce tutoriel.
Exemple d'authentification
Dans cet exemple, nous avons créé un système d'authentification Laravel 7 simple.
Étape 1: Exécutez la commande suivante dans l'invite de commande pour créer un projet Laravel nommé auth-tutorial .
composer create-project --prefer-dist laravel/laravel:^7.0 auth-tutorial
Étape 2: Connectez votre projet à la base de données et exécutez la commande suivante dans l'invite de commande pour exécuter les migrations par défaut.
php artisan migrate
Étape 3: Exécutez la commande suivante dans l'invite de commande pour installer le Package d'interface utilisateur Laravel .
composer require laravel/ui
Étape 4: La prochaine étape consiste à générer échafaudage auth avec Bootstrap, Vue, ou Réagir . Tu peux courir une des commandes suivantes pour créer des échafaudages authentiques.
Exécutez la commande suivante dans l'invite de commande pour générer un échafaudage d'authentification avec Amorcer .
php artisan ui bootstrap --auth
Exécutez la commande suivante dans l'invite de commande pour générer un échafaudage d'authentification avec Vue .
php artisan ui vue --auth
Exécutez la commande suivante dans l'invite de commande pour générer un échafaudage d'authentification avec Réagir .
php artisan ui react --auth
Étape 5: Exécutez les deux commandes suivantes dans l'invite de commande pour compiler la nouvelle structure en installant dépendances npm .
npm install npm run dev
Étape 6: Visitez les URL suivantes pour tester l'authentification en créant un nouvel utilisateur (en enregistrant un nouvel utilisateur) et en vous connectant au système. Vous pouvez essayer des données valides et non valides pour tester l'authentification.
Noter : Les URL suivantes peuvent différer des vôtres.
Tout d'abord, vous devez enregistrer un nouvel utilisateur. Visitez l'URL suivante pour enregistrer un nouvel utilisateur, et cela produira une sortie similaire à la capture d'écran ci-dessous.
http: //auth-tutorial.test/register
Après avoir enregistré un nouvel utilisateur, connectez-vous au système en visitant l'URL suivante, et il produira une sortie similaire à la capture d'écran ci-dessous.
http: //auth-tutorial.test/login
Une connexion réussie redirigera l'utilisateur vers le page d'accueil / tableau de bord comme indiqué ci-dessous.
Autorisation Laravel
En termes simples, autorisation vérifie si le les utilisateurs authentifiés ont l'autorisation nécessaire pour accéder aux ressources demandées .
Exemple d'autorisation
Dans cet exemple, nous avons créé un système d'autorisation Laravel 7 simple.
Étape 1: Exécutez la commande suivante dans l'invite de commande pour créer un projet Laravel nommé autorisation-tutoriel .
composer create-project --prefer-dist laravel/laravel:^7.0 authorization-tutorial
Étape 2: Connectez votre projet à la base de données.
Étape 3: Exécutez la commande suivante dans l'invite de commande pour créer le add_role_column_to_users_table migration et modifiez le code existant comme indiqué ci-dessous:
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) { // }); } }
Étape 4: Exécutez la commande suivante dans l'invite de commande pour exécuter toutes les migrations.
php artisan migrate
Étape 5: Ajouter des exemples de données au Utilisateurs table utilisant bricoler comme indiqué ci-dessous:
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
Étape 6: Exécutez la commande suivante dans l'invite de commande pour installer le Package d'interface utilisateur Laravel .
composer require laravel/ui
Étape 7: La prochaine étape consiste à générer échafaudage auth avec Bootstrap, Vue, ou Réagir . Tu peux courir une des commandes suivantes pour créer des échafaudages authentiques.
Exécutez la commande suivante dans l'invite de commande pour générer un échafaudage d'authentification avec Amorcer .
php artisan ui bootstrap --auth
Exécutez la commande suivante dans l'invite de commande pour générer un échafaudage d'authentification avec Vue .
php artisan ui vue --auth
Exécutez la commande suivante dans l'invite de commande pour générer un échafaudage d'authentification avec Réagir .
php artisan ui react --auth
Étape 8: Exécutez les deux commandes suivantes dans l'invite de commande pour compiler la nouvelle structure en installant dépendances npm .
npm install npm run dev
Étape 9: Ouvrez le AuthServiceProvider.php déposer à App / Fournisseurs et modifiez le code existant comme indiqué ci-dessous:
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'; }); } }
Étape 10: Modifiez le code existant dans le home.blade.php fichier comme indiqué ci-dessous:
@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
Étape 11: Visitez l'URL suivante, et il produira une sortie similaire à la capture d'écran ci-dessous. Ensuite, connectez-vous au système en tant qu'administrateur, gestionnaire et utilisateur un par un.
Noter : Les URL suivantes peuvent différer des vôtres.
http: //authorization-tutorial.test/login
- Connexion administrateur
Si vous êtes connecté en tant que admin , la sortie sera similaire à la capture d'écran suivante.
- Connexion du gestionnaire
Si vous êtes connecté en tant que directeur , la sortie sera similaire à la capture d'écran suivante.
- Utilisateur en ligne
Si vous êtes connecté en tant que utilisateur , la sortie sera similaire à la capture d'écran suivante.
Envoi d'e-mails dans Laravel
Qu'est-ce que Mailtrap
Il existe plusieurs outils en ligne gratuits pour tester les e-mails dans Laravel, et Mailtrap est l'un de ces outils. Mailtrap utilise un faux serveur SMTP pour tester les e-mails. Il accepte les e-mails de l'hôte local qui permet au développeur ou au testeur de tester la façon dont les e-mails vont être partagés avant de les envoyer vers de vraies boîtes de réception.
Exemple d'envoi d'emails
Faisons un exemple simple en utilisant Mailtrap .
Étape 1: Exécutez la commande suivante dans l'invite de commande pour créer un projet Laravel nommé tutoriel par e-mail .
composer create-project --prefer-dist laravel/laravel:^7.0 email-tutorial
Étape 2: Visiter le URL et créez un nouveau compte Mailtrap ou connectez-vous au compte Mailtrap si vous en avez déjà un.
Étape 3: Après vous être connecté au compte Mailtrap,
#1) Cliquer sur Boîte de réception de démonstration .
#deux) Identifiez le Nom d'utilisateur et Mot de passe sous SMTP . Ce nom d'utilisateur et ce mot de passe sont uniques et nous les utiliserons à l'étape suivante.
Noter: Visiter le URL pour en savoir plus sur Mailtrap.
Étape 4: Ouvrez le fichier. env fichier et entrez votre Mailtrap nom d'utilisateur et mot de passe.
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}'
Étape 5: Ajoutez les deux itinéraires suivants au routes / web.php déposer.
Route::get('/contact', 'ContactController@contact')->name('contact'); Route::post('/contact', 'ContactController@sendContactForm')->name('contact.send');
Étape 6: Exécutez la commande suivante dans l'invite de commande pour créer FileUploadController et modifiez le code existant comme indiqué ci-dessous.
php artisan make: contrôleur 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!'); } }
Étape 7: Exécutez la commande suivante dans l'invite de commande pour créer Contactez-nous classer. Cette commande créera un fichier nommé ContactMail.php dans le App / Mail annuaire.
php artisan make:mail ContactMail
Étape 8: Modifiez le code existant dans le ContactMail.php fichier comme indiqué ci-dessous.
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); } }
Étape 9: Créez les fichiers de vue suivants et ajoutez les codes.
#1) Créer le contact.blade.php fichier et ajoutez le code suivant.
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
#deux) Créer le contact-template.blade.php fichier et ajoutez le code suivant.
Name: {{ $data['name'] }}
Subject: {{ $data['subject'] }}
Message: {{ $data['message'] }}
Étape 10: Visitez l'URL suivante, et il produira une sortie similaire à la capture d'écran ci-dessous.
Noter : L'URL suivante peut différer de la vôtre.
http: //email-tutorial.test/contact
Étape 11: Remplissez le formulaire et envoyez-le.
Étape 12: Maintenant, visitez votre Mailtrap compte et vérifiez la boîte de réception. Vous verrez un nouveau message dans votre boîte de réception similaire à la capture d'écran ci-dessous.
outil de piratage en ligne
Conclusion
Le téléchargement de fichiers Laravel est facile et le développeur peut également définir les autorisations de fichiers Laravel. Laravel fournit un moyen simple de définir, d'obtenir et de supprimer des données de session. L'authentification Laravel aide à identifier les utilisateurs tandis que l'autorisation Laravel vérifie si les utilisateurs authentifiés ont l'autorisation d'accéder aux ressources demandées.
Nous pouvons utiliser des outils comme Mailtrap pour tester les e-mails avant de les envoyer dans des boîtes de réception réelles.
Nous espérons que vous avez trouvé ce tutoriel utile! Au plaisir de vous revoir dans le prochain tutoriel où nous discuterons Forge et collections de Laravel .
Bon apprentissage!
<< PREV Tutorial | Tutoriel SUIVANT >>
lecture recommandée
- Tutoriel PHP Laravel pour les débutants: Qu'est-ce que le framework Laravel
- Tutoriel Laravel Collection et Laravel Forge
- Base de données Laravel, Migrations, ORM éloquent et Tinker
- Formulaires Laravel et règles de validation avec exemple
- Autorisations d'accès aux fichiers Unix: Unix Chmod, Chown et Chgrp
- Autorisations Unix: autorisations de fichiers sous Unix avec des exemples
- Comment télécharger un fichier à l'aide de Selenium Webdriver - 3 méthodes
- Manipulation de fichiers sous Unix: présentation du système de fichiers Unix