English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Mise en œuvre facile de la fonction de téléversement de fichiers PHP

Téléversement de fichiers PHP

Avec PHP, vous pouvez téléverser des fichiers sur le serveur.

L'exemple de cette section est terminé sous le projet test, la structure du répertoire est la suivante :

test
|-----upload  # Répertoire de téléversement de fichiers
|-----form.html  # Formulaire
|-----upload_file.php    # Code PHP de téléchargement

Téléchargement du code source :Téléchargement de fichiers

Créer un formulaire de téléchargement de fichiers
Permettre aux utilisateurs de télécharger des fichiers à partir du formulaire est très utile.
Voyez ci-dessous ce formulaire HTML pour télécharger des fichiers :

<html>
<head>
<meta charset="utf-8">
<title>Tutoriel pour débutants (runoob.com)</title>
</head>
<body>
<form action="upload_file.php" method="post" enctype="multipart/form-data">
 <label for="file">Nom de fichier : </label>
 <input type="file" name="file" id="file"><br>
 <input type="submit" name="submit" value="Soumettre">
</form>
</body>
</html>

Enregistrer le code ci-dessus dans le fichier form.html.
Voici quelques points à noter concernant le formulaire HTML ci-dessus :

1.L'attribut enctype de l'étiquette <form> spécifie le type de contenu à utiliser lors de la soumission du formulaire. Utilisez "multipart" lorsque le formulaire nécessite des données binaires, telles que le contenu des fichiers./form-data".
2.L'attribut type="file" de l'étiquette <input> spécifie que l'entrée doit être traitée comme un fichier. Par exemple, lors de l'aperçu dans le navigateur, vous verrez un bouton de navigation à côté de la zone de saisie.
Remarque :Permettre aux utilisateurs de télécharger des fichiers est un risque de sécurité important. N'autorisez que des utilisateurs de confiance à effectuer des opérations de téléchargement de fichiers.

Créer un script de téléchargement
"upload_file.php" Le fichier contient le code pour télécharger des fichiers :

<?php
if ($_FILES["file"]["error"] > 0)
{
 echo "Erreur :" . $_FILES["file"]["error"] . "<br>";
}
else
{
 echo "Nom du fichier téléversé: " . $_FILES["file"]["name"] . "<br>";
 echo "Type de fichier: " . $_FILES["file"]["type"] . "<br>";
 echo "Taille du fichier: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
 echo "Emplacement temporaire du fichier: " . $_FILES["file"]["tmp_name"];
}
?>

En utilisant l'array global de PHP $_FILES, vous pouvez télécharger un fichier depuis l'ordinateur client vers le serveur distant.
Le premier paramètre est le nom de l'input du formulaire, le second index peut être "name", "type", "size", "tmp_name" ou "error". Voici un exemple :
$_FILES["file"]["name"] - Le nom du fichier téléchargé
$_FILES["file"]["type"] - Le type du fichier téléchargé
$_FILES["file"]["size"] - La taille du fichier téléchargé, en octets
$_FILES["file"]["tmp_name"] - Nom de la copie temporaire du fichier stockée sur le serveur
$_FILES["file"]["error"] - Codes d'erreur dus au téléversement de fichiers

C'est une méthode de téléversement de fichiers très simple. Pour des raisons de sécurité, vous devriez ajouter des limitations concernant qui peut téléverser des fichiers.

Limites de téléversement
Dans ce script, nous avons ajouté des limitations pour le téléversement de fichiers. Les utilisateurs ne peuvent téléverser que des fichiers .gif, .jpeg, .jpg, .png et la taille des fichiers doit être inférieure à 200 Ko :

<?php
// Extensions de fichiers d'image autorisées à téléverser
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);  // Obtenir l'extension du fichier
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 204800) // inférieur à 200 ko
&& in_array($extension, $allowedExts))
{
 if ($_FILES["file"]["error"] > 0)
 {
 echo "Erreur: " . $_FILES["file"]["error"] . "<br>";
 }
 else
 {
 echo "Nom du fichier téléversé: " . $_FILES["file"]["name"] . "<br>";
 echo "Type de fichier: " . $_FILES["file"]["type"] . "<br>";
 echo "Taille du fichier: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
 echo "Emplacement temporaire du fichier: " . $_FILES["file"]["tmp_name"];
 }
}
else
{
 echo "Format de fichier illégal";
}
?>

Enregistrer le fichier téléversé
L'exemple ci-dessus a créé une copie temporaire du fichier téléversé dans le dossier temporaire PHP du serveur.
Ce fichier de copie temporaire disparaîtra à la fin du script. Pour sauvegarder le fichier téléversé, nous devons le copier dans un autre emplacement :

<?php
// Extensions de fichiers d'image autorisées à téléverser
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
echo $_FILES["file"]["size"];
$extension = end($temp);  // Obtenir l'extension du fichier
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 204800) // inférieur à 200 ko
&& in_array($extension, $allowedExts))
{
 if ($_FILES["file"]["error"] > 0)
 {
 echo "Erreur: " . $_FILES["file"]["error"] . "<br>";
 }
 else
 {
 echo "Nom du fichier téléversé: " . $_FILES["file"]["name"] . "<br>";
 echo "Type de fichier: " . $_FILES["file"]["type"] . "<br>";
 echo "Taille du fichier: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
 echo "L'emplacement temporaire du fichier : " . $_FILES["file"]["tmp_name"] . "<br>";
 // Vérifiez si le fichier existe dans le répertoire upload actuel
 // Si le répertoire upload n'existe pas, vous devez le créer, les permissions du répertoire upload sont 777
 if (file_exists("upload/" . $_FILES["file"]["name"]))
 {
 echo $_FILES["file"]["name"] . " Fichier existe déjà. ";
 }
 else
 {
 // Si le fichier n'existe pas dans le répertoire upload, le fichier est téléversé dans le répertoire upload
 move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
 echo "Le fichier est stocké dans: " . "upload/" . $_FILES["file"]["name"];
 }
 }
}
else
{
 echo "Format de fichier illégal";
}
?>

Le script ci-dessus vérifie si le fichier existe, s'il n'existe pas, il copie le fichier dans le répertoire nommé "upload".
Voici la démonstration d'opération de téléversement de fichier :

Voici la totalité du contenu de cet article, j'espère qu'il sera utile à votre apprentissage, et que vous soutiendrez également le tutoriel d'alarme.

Déclaration : le contenu de cet article est extrait du réseau, propriété de l'auteur original, contribué et téléversé par les utilisateurs d'Internet de manière spontanée. Ce site n'est pas propriétaire des droits, n'a pas été édité par l'homme, et n'assume aucune responsabilité juridique. Si vous trouvez du contenu suspect de violation de droits d'auteur, veuillez envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour signaler une violation, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu suspect de violation de droits d'auteur.)

Vous pourriez aimer