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 :
-
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>
-
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.