Tutoriel de téléchargement de fichiers Laravel 9

Tutoriel de téléchargement de fichiers Laravel 9

Qu'est-ce que la validation des fichiers dans Laravel?

La validation de Laravel est un moyen d'obtenir un rôle de validation. Nous pouvons vérifier le type de fichier, la taille du fichier, etc. La validation des fichiers est généralement utilisée pour éviter les téléchargements de fichiers indésirables dans un serveur ou une application.

Aujourd'hui, nous nous renseignerons sur le téléchargement de fichiers et le stockage dans Laravel 9.

Les exigences du projet sont fournies ci-dessous:

  • Mysql 8.0+
  • Mariadb 10.2+
  • Php 8.1

Voici un exemple de définition du fichier upload:

  1. Processus 1. Créer un projet Fileupload
  2. Processus 2. Connexion de base de données de projet FileUpload
  3. Processus 3. Créer un modèle et un contrôleur dans le projet Fileupload
  4. Processus 4. Exécutez et testez le projet Fileupload

Processus 1. Créer un projet Fileupload

L'étape 1 consiste à exécuter cette ligne de commande pour installer Laravel 9 sur notre serveur ou PC. Pour cela, nous devons ouvrir le terminal SSH Windows dans le dossier.

Composer Create-Project Laravel / Laravel Fileupload

Processus 2. Connexion de base de données de projet FileUpload

Ouvrir le .Env Fichier sur le projet FileUpload et ajoutez un nouveau nom de base de données, nom d'utilisateur et mot de passe.

Voici le code suivant:

Db_connection = mysql
Db_host = 127.0.0.1
Db_port = 3306
Db_database = nom de la base de données de fichiers
Db_username = Nom d'utilisateur de la base de données FileUpload
DB_PASSWORD = Mot de passe de la base de données FileUpload

Processus 3. Créer un modèle et un contrôleur dans le projet Fileupload

Une fois la base de données connectée, nous devons créer un modèle et un contrôleur pour le projet Fileupload.

Pour cela, nous devons exécuter la commande suivante:

PHP Artisan Make: Model Fileupload -MC

Maintenant, accédez à "Database \ Migrations \ 2022_07_11_074014_create_file_uploads_table.Fichier PHP ". Ce nom pourrait être différent de votre côté. Maintenant, nous devons mettre ces deux lignes dans le fichier:

$ table-> String ('file_name') -> nullable ();
$ table-> String ('file_path_location') -> nullable ();

C'est ressemble à ça

Rendre une nouvelle classe prolonge la migration

Fonction publique UP ()

Schéma :: Create ('file_uploads', fonction (tableau Blueprint $)
$ table-> id ();
$ table-> String ('file_name') -> nullable ();
$ table-> String ('file_path_location') -> nullable ();
$ Table-> TimeStamps ();
);

Fonction publique Down ()

Schéma :: dropIfeXists ('file_uploads');

;

Nous modifions notre modèle de charge de fichiers dans «App \ Models \ Fileupload.php ". Nous y ajoutons des propriétés remplissables. Le code est indiqué ci-dessous:

Namespace App \ Modèles;
Utiliser illuminate \ database \ eloquent \ usine \ Hasfactory;
Utiliser illuminate \ database \ eloquent \ modèle;
Class Fileupload étend le modèle

Utiliser Hasfactory;
protégé $ remplissable = [
'nom de fichier',
'file_path_location'
]]

Maintenant, nous devons migrer le tableau vers la base de données pour exécuter cette commande:

PHP Artisan Migrate

Une fois la migration terminée, nous devons créer deux fonctions. Une fonction consiste à aller à la page de téléchargement, et une autre consiste à télécharger un fichier dans le répertoire et à le stocker dans la base de données.

Accédez à «App \ Http \ Controllers \ FileUploadController.Fichier PHP ":

Maintenant, ajoutez ce code au contrôleur:

Fonction publique FileView (demande $ demande)

return View ('File-upload');

Et une autre fonction est indiquée ci-dessous:

Fonction publique UploadTheFile (demande $ demande)

$ règles = array (
'pièce jointe' => 'mimes: jpeg, png, jpg, gif, svg, pdf | max: 1000',
));
$ messages = array (
'attachement' => 'L'image a besoin de moins de 1 Mo.',
));
$ validator = validator :: make ($ request-> all (), $ règles, $ messages);
if ($ validator-> échoue ())
return redirect () -> Route ('fileViews') -> avec ('Success', 'Ajout avec succès');
return redirect () -> Route ('fileViews') -> witherrors ($ validator);
autre
$ ImageName = Time () . '.' . $ request-> jointe-> extension ();
// supprimer l'image avant de télécharger
$ path = $ request-> attachment-> Move (public_path ('Storage / Piépied /'), $ ImageName);
$ départementname ['file_name'] = $ ImageName;
$ départementname ['file_path_location'] = $ path;
FileUpload :: Create ($ DepartmentName);
return redirect () -> Route ('fileViews') -> avec ('error', 'pas de fichier ajouté');

Dans la fonction uploadTheFile, nous avons utilisé le validateur.

Nous avons créé cette fonction pour télécharger la vue. Ainsi, nous devons créer la vue dans la vue Laravel située dans «Resources \ Views \ File-upload.lame.php ".

Créons la vue pour télécharger le fichier.

Copiez le code et collez-le dans la vue.








intégrity = "sha384-0evhe / x + r7ykizdrvuzkmrqm + orbnvfbl6doitfpri4tjfhxawutupfmbp4vmvor" crossorigin = "anonymous">

>