Comment télécharger des fichiers sur un serveur Web avec php

Présentation.


Télécharger des fichiers sur un serveur Web; simple, à quel point cela peut-il être difficile? Bien sûr, beaucoup le diront, mais ceux qui commencent tout juste dans ce monde se sont sûrement demandé comment c'est fait, je veux juste y arriver, donc si vous débutez en PHP ou si vous êtes un utilisateur avancé qui a perdu ce code et ne voulez l'utiliser à nouveau écrire, alors je vous invite à continuer à lire, car dans cet article je vais partager mon code pour télécharger des fichiers rapidement et facilement, pour cela j'utiliserai HTML5, PHP et j'ajouterai une touche attractive avec boostrap. Dans ce cas, j'expliquerai comment télécharger des images .jpg.webp ou .png.webp, mais avec des modifications minimes, vous pouvez télécharger des documents, de l'audio et même de la vidéo si vous le souhaitez.
Qu'avons nous besoin?a) Un ordinateur
b) Un serveur local pour tester et accéder à la base de données (j'utilise XAMPP)
c) Un éditeur de code (j'utiliserai du texte sublime 3)

Étape 1


Je vais dans le répertoire htdocs de Xampp et crée un nouveau dossier que j'appellerai "upload".
AGRANDIR
À l'intérieur de cela, je vais créer un autre appelé "fichiers" et un autre appelé "php".
AGRANDIR

Étape 2


Maintenant, dans l'éditeur de code, je vais créer un nouveau fichier que j'enregistrerai sous le nom index.php qui contiendra plus tard le formulaire html pour télécharger les fichiers.
AGRANDIR

Étape 3


Je vais ajouter les références en ligne à boostrap.
AGRANDIR

Étape 4


A l'intérieur du corps, je vais créer un, dans ce un

AGRANDIR

Étape 5


Maintenant à l'intérieurje vais ajouter un saut de voiture
un titre avecet je vais commencer à structurer notre petit formulaire pour l'upload…
AGRANDIR
Vous verrez que j'ai assigné la méthode "POST" à l'étiquette et dans l'action nous avons ajouté un point d'interrogation "?" ce qui fera que lors de l'envoi du formulaire ses valeurs sont retournées à cette même page, en plus j'ai ajouté un attribut appelé "encytipe" avec la valeur "multipart / form-data" ceci en règle générale devrait être utilisé dans tous formulaires qui envoient des fichiers .

Étape 6


Puisque nous avons l'étiquette prête, nous pouvons ajouter le champ dont nous avons besoin et un bouton qui enverra le formulaire à traiter.
Pour cela nous allons ajouter une étiquetteet il contiendra une entrée de type "fichier" qui se chargera de capturer le fichier que l'on veut uploader…
AGRANDIR
Comme vous pouvez le voir, nous avons attribué le nom "file" et une classe appelée "form-control", qui appartient à bootstrap et sert à donner un espacement correct aux champs de texte contenus dans un formulaire. De son côté, nous ajoutons également un attribut "obligatoire" qui empêchera la soumission du formulaire si ce champ est vide.

Étape 7


Plus tard, nous ajouterons une étiquette en guise de décoration, ce qui nous aidera à tracer une ligne séparant l'entrée précédente du bouton qui enverra le formulaire.
AGRANDIR

Étape 8


Comme vous le verrez juste en dessous du label nous avons placé une entrée de type "submit" à laquelle nous ajoutons les classes boostrap "btn btn-primary center-block", dont la première nous aide à donner une forme plus attractive à notre bouton, le second le place dans la couleur primaire du boostrap qui est un bleu intense et le troisième sert à placer cet élément avec un réglage centré, notez que nous avons appelé ce bouton "haut".

Étape 9


Nous avons déjà notre html prêt, donc maintenant nous allons écrire quelques lignes en php qui se chargeront de télécharger nos fichiers, pour cela nous allons créer un nouveau fichier upload.php que je sauvegarderai dans le "php" dossier que nous créons à l'étape 2.

Étape 10


La première chose que nous allons faire dans notre fichier php est de valider si le bouton a été appuyé
"Upload" et si le champ "file" n'est pas vide, pour cela nous écrirons ce qui suit…
AGRANDIR

Étape 11


Une fois ceci vérifié, nous utiliserons une boucle "foreach" pour obtenir les propriétés du fichier que nous allons uploader.Comme nous l'avons mentionné précédemment, dans ce cas nous parlerons d'images au format .jpg.webp ou .png.webp.
AGRANDIR

Étape 12


Nous allons créer 2 variables appelées "$ file" et "$ destination", la première contiendra le fichier que nous téléchargeons et la seconde nous attribuerons le chemin où il sera enregistré et le nom avec lequel il sera stocké , comme vous pouvez l'imaginer le chemin de stockage Ce sera le répertoire "files" qui a été créé à l'étape 2, tandis que le nom avec lequel il sera stocké proviendra du tableau $ FILES que nous avons construit à l'étape précédente avec le foreach …
AGRANDIR

Étape 13


Maintenant il faut valider que le fichier qui est uploadé est conforme aux paramètres que l'on veut, j'ai indiqué précédemment que je veux uploader des images en .jpg.webp ou .png.webp, mais c'est le moment de le laisser défini dans notre code. Aussi comme mesure personnelle je souhaite que la taille maximale des images à télécharger soit de 2Mo, j'en profiterai donc pour l'indiquer également, mais néanmoins cette taille maximale ne peut pas être définie en Mo donc nous devrons la convertir en octets…
AGRANDIR
Puisque nous avons établi les conditions pour pouvoir traiter les dossiers, nous devons maintenant définir ce que nous allons en faire. Dans ce cas, je souhaite que ces fichiers soient copiés dans le dossier "fichiers", mais je souhaite également que le chemin d'accès à chaque fichier soit stocké dans une base de données afin que je puisse ultérieurement créer une liste ou une galerie avec ces fichiers.
Cela dit, nous devrons créer une base de données, et à l'intérieur de celle-ci une table avec des champs pour contenir le chemin de chaque fichier, un fichier de connexion à cette base de données et bien sûr inclure dans notre upload.php une instruction SQL qui insère le chemin de chaque fichier au sein de la base de données. Fonce!.

Étape 14


Avec xampp actif, nous allons dans notre navigateur et entrons l'adresse "localhost / phpmyadmin".
AGRANDIR

Étape 15


A l'intérieur, nous allons créer une table que j'appellerai "routes" avec seulement 2 colonnes, un identifiant à incrémentation automatique et une autre route appelée de type varchar.
AGRANDIR
AGRANDIR
Nous avons déjà la base de données et la table dont nous avons besoin mais maintenant nous devons nous connecter à cette base de données, pour cela je vais aller dans mon éditeur de code et créer 2 nouveaux fichiers et les enregistrer sous "config.php" et "connection.php" à l'intérieur le dossier php que nous avons déjà.
AGRANDIR
AGRANDIR

Étape 16


Nous allons maintenant revenir à notre fichier "upload.php" et y inclure le fichier "connection.php"
AGRANDIR

Étape 17


Ensuite, nous ajouterons la fonction pour que le fichier que nous téléchargeons soit copié dans le répertoire "files" et nous insérons le chemin ou le lien vers ce fichier dans la base de données. Ensuite, nous pouvons ajouter un message de confirmation si tout se passe bien et un message d'avertissement au cas où nous ne téléchargeons pas le type de fichier correct ou s'il dépasse la limite maximale de Mo.
AGRANDIR

Étape 18


Nous retournerons à notre fichier "index.php" et après la balise de fermeture "" nous placerons un include dans le fichier upload.php
AGRANDIR

Étape 19


Nous avons déjà notre code prêt, la base de données a été créée et la connexion est configurée, voyons maintenant quel est le résultat et vérifions si cela fonctionne correctement.
Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif

Ce tutoriel vous a-t-il aidé ?

Sinon

AIDEZ A AMÉLIORER CE TUTORIEL !

Pensez-vous pouvoir corriger ou améliorer ce tutoriel ? Vous pouvez envoyer votre édition avec les modifications que vous jugez utiles.
0 utilisateurs ont modifié ce tutoriel. Editez et devenez un expert reconnu !
Modifier ce tutoriel

TUTORIELS SIMILAIRES


Stocker des fichiers dans des champs BLOB avec PHP et MySQLGénérer des fichiers PDF avec PHP

8 commentaires


David Sanz
29 août 2015 23:34J'ai adoré le tutoriel, il est très intéressant de savoir comment uploader des fichiers via PHP. Merci Ronny
  • Reportage

Ronny Bonillo
30 août 2015 00:50De rien david, j'espère que ça te sera utile… Salutations…
  • Reportage

Ruben Gandia
03 sept. 2015 18:45

Ronny, j'ai utilisé votre tutoriel pour corriger une erreur que je faisais lors du téléchargement de fichiers via PHP. Je me connecte juste pour vous donner le Merci et que je vous ai également marqué Suivez.

  • Reportage

Ronny Bonillo
03 sept. 2015 18:47

De rien Ruben, merci de me suivre ! Je suis content que vous l'ayez trouvé utile…

  • Reportage

Diego Agudelo Jiménez
16 février 2016 22:56

Excellente aide

  • Reportage

Ronny Bonillo
Mar 02 2016 06:24;-)
  • Reportage

MartinPm
05 août 2016 20:16

Et Ronny, pouvez-vous m'aider, j'obtiens cette erreur …

Remarque : Index non défini : fichier dans C:\xampp\htdocs\upload\php\upload.php on line3
Attention : Argument non valide fourni pour foreach() inC:\xampp\htdocs\upload\php\upload.php à la ligne 3
Remarque : Index non défini : fichier dans C:\xampp\htdocs\upload\php\upload.php sur line7
Remarque : Index non défini : fichier dans C:\xampp\htdocs\upload\php\upload.php sur line8
Remarque : Index non défini : fichier dans C:\xampp\htdocs\upload\php\upload.php sur line10

  • Reportage

josenumis
Déc2021-202221-2022 17:23Bonjour, j'ai copié tel quel mais en changeant le nom du serveur etc (qui n'est pas local) et il ne télécharge pas les fichiers ou me donne une erreur (il me permet de sélectionner le fichier) s'il ne l'a pas sélectionné, il dit moi pour le sélectionner mais quand je l'envoie au serveur ça ne fait rien quelqu'un peut-il m'envoyer les codes pour vérifier s'il y a quelque chose qui ne va pas) ? Je pense que tout va bien. Mon email est [email protected] merci beaucoup.
  • Reportage
N'attendez plus et entrez dans SolveticLaissez vos commentaires et profitez du compte utilisateur Rejoignez-nous !
  • Créer un compteInscrivez-vous GRATUITEMENT pour avoir votre compte SolveticEnregistrez un compte
  • IdentifierAvez-vous déjà un compte? Se connecter iciIdentifiez-moi dans mon compte

    Information

    • Publié 27 août 2015 21:10
    • Actualisé 28 août 2015 08:21
    • Visites 15,8K
    • NiveauAvancée

    Derniers tutoriels PHP
    • Comment installer pHpMyAdmin sur Ubuntu 20.04
    • Installer Laravel PHP Framework CentOS 8 avec NGINX
    • Installer et configurer OPcache pour les performances PHP sur CentOS 7
    • Comment installer Laravel PHP Web Framework sur CentOS
    Voir plus de PHP

    Vous contribuerez au développement du site, partager la page avec vos amis

    wave wave wave wave wave