Tuto : Upload (téléverser) de fichiers en PHP

upload php

Pour téléverser (uploder) un fichier sur votre serveur en PHP, vous devez d'abord créer un formulaire HTML qui permettra à l'utilisateur et de sélectionner le fichier à téléverser. Voici la démarche :

  1. Créer un fichier index.html pour le formulaire HTML en mettant ce code source :

 <form action="upload.php" method="post" enctype="multipart/form-data">
Sélectionnez le fichier à téléverser :
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Téléverser" name="submit">
</form>

  1. Ensuite, vous devez créer le script PHP (upload.php) qui traitera le téléversement du fichier.
    Voici un exemple de ce à quoi cela pourrait ressembler :

<?php
$target_dir = "uploads/"; // Répertoire de destination pour le téléversement
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); // Chemin complet du fichier cible
$uploadOk = 1; // Variable de contrôle pour vérifier si le téléversement est autorisé
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); // Extension du fichier cible

// Vérifiez si le fichier est réellement une image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "Le fichier est une image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "Le fichier n'est pas une image.";
$uploadOk = 0;
}
}

// Vérifiez si le fichier existe déjà
if (file_exists($target_file)) {
echo "Désolé, ce fichier existe déjà.";
$uploadOk = 0;
}

// Vérifiez la taille du fichier
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Désolé, votre fichier est trop volumineux.";
$uploadOk = 0;
}

// Autorisez seulement certains types de fichiers
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Désolé, seuls les fichiers JPG, JPEG, PNG et GIF sont autorisés.";
$uploadOk = 0;
}

// Vérifiez si $uploadOk est défini sur 0 par une erreur
if ($uploadOk == 0) {
echo "Désolé, votre fichier n'a pas été téléversé.";

// Si tout est correct, tentez de télécharger le fichier
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "Le fichier ". basename( $_FILES["fileToUpload"]["name"]). " a été téléversé avec succès.";
} else {
echo "Désolé, il y a eu une erreur lors du téléchargement de votre fichier.";
}
}
?>

Il est important de noter que vous devrez peut-être vérifier les autorisations de votre répertoire de téléversement pour vous assurer que PHP a les droits en écriture nécessaires pour y écrire le fichier. Vous devrez également vous assurer que votre formulaire HTML inclut l'attribut enctype="multipart/form-data" afin de permettre le téléchargement de fichiers.