Maison  >  Article  >  développement back-end  >  Quelles sont les étapes pour télécharger des fichiers php ?

Quelles sont les étapes pour télécharger des fichiers php ?

angryTom
angryTomoriginal
2019-08-22 11:53:377285parcourir

Quelles sont les étapes pour télécharger des fichiers php ?

Lorsque nous développons des sites Web, nous rencontrons souvent le besoin de créer une fonction de téléchargement de fichiers. Ci-dessous, nous vous présenterons les étapes détaillées de création d'une fonction de téléchargement de fichiers en PHP.

Tutoriels recommandés : Tutoriel vidéo PHP

Étape 1 : Créer un formulaire de téléchargement de fichier

Il est très utile de permettre aux utilisateurs de télécharger des fichiers à partir d'un formulaire.

Veuillez consulter le formulaire HTML suivant pour télécharger des fichiers :

<html>
    <body>
        <form action="upload_file.php" method="post"  enctype="multipart/form-data">
            <label for="file">Filename:</label>
            <input type="file" name="file" id="file" /> 
            <br />
            <input type="submit" name="submit" value="Submit" />
        </form>
    </body>
</html>

Veuillez noter les informations suivantes sur ce formulaire :

L'attribut enctype de la balise ff9c23ada1bcecdd1a0fb5d5a0f18437 le type de contenu à utiliser lors de la soumission du formulaire. Utilisez "multipart/form-data" lorsque votre formulaire nécessite des données binaires, telles que le contenu d'un fichier.

 d5fd7aea971a85678ba271703566ebfd L'attribut type="file" de la balise spécifie que l'entrée doit être traitée comme un fichier. Par exemple, lors de la prévisualisation dans un navigateur, vous verrez un bouton Parcourir à côté de la zone de saisie.

Commentaire : Autoriser les utilisateurs à télécharger des fichiers constitue un risque de sécurité énorme. Veuillez autoriser uniquement les utilisateurs de confiance à effectuer des opérations de téléchargement de fichiers.

Étape 2 : Créer un script de téléchargement

Le fichier "upload_file.php" contient le code pour télécharger les fichiers :

<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br />";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br />";
  echo "Type: " . $_FILES["file"]["type"] . "<br />";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }
?>

En utilisant le tableau global $_FILES de PHP, vous pouvez télécharger des fichiers depuis l'ordinateur client vers un serveur distant.

Le premier paramètre est le nom d'entrée du formulaire, et le deuxième indice peut être "name", "type", "size", "tmp_name" ou "error". Comme ceci :

 Quantity$_FILES["file"]["name"] - Le nom du fichier téléchargé

 $_FILES["file"]["type"] - Le nom du fichier téléchargé Type de fichier téléchargé

 Quantity$_FILES["file"]["size"] - La taille du fichier téléchargé, en octets

  ●$_FILES["file "][" tmp_name"] - Le nom de la copie temporaire du fichier stocké sur le serveur

 Quantity$_FILES["file"]["error"] - Le code d'erreur provoqué par le téléchargement du fichier

Il s'agit d'un moyen très simple de télécharger des fichiers. Pour des raisons de sécurité, vous devez ajouter des restrictions quant aux personnes autorisées à télécharger des fichiers.

Étape 3 : Restrictions de téléchargement

Dans ce script, nous ajoutons des restrictions sur les téléchargements de fichiers. Les utilisateurs ne peuvent télécharger que des fichiers .gif ou .jpeg, et la taille du fichier doit être inférieure à 20 Ko :

<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Error: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Stored in: " . $_FILES["file"]["tmp_name"];
    }
  }
else
  {
  echo "Invalid file";
  }
?>

Remarque : Pour IE, le type de fichier jpg reconnu doit être pjpeg, pour FireFox, ce doit être au format jpeg.

Étape 4 : Enregistrez le fichier téléchargé

L'exemple ci-dessus crée un fichier téléchargé dans le dossier temporaire PHP du serveur.

Ce fichier temporaire copié disparaîtra à la fin du script. Pour enregistrer le fichier téléchargé, nous devons le copier vers un autre emplacement :

<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>

Le script ci-dessus détecte si le fichier existe déjà. S'il n'existe pas, il copie le fichier dans le dossier spécifié.

Commentaires : Cet exemple enregistre le fichier dans un nouveau dossier nommé "upload".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn