Télécharger un fichier à l'aide de PHP
Le téléchargement de fichiers vers un dossier spécifié est une tâche courante dans de nombreuses applications Web. Cette question explore un simple bloc de code PHP visant à réaliser cette tâche.
$folder = "upload/"; if (is_uploaded_file($HTTP_POST_FILES['filename']['tmp_name'])) { if (move_uploaded_file($HTTP_POST_FILES['filename']['tmp_name'], $folder . $HTTP_POST_FILES['filename']['name'])) { echo "File uploaded"; } else { echo "File not moved to destination folder. Check permissions"; }; } else {s echo "File is not uploaded"; };
Cependant, lors de l'exécution, une erreur se produit :
Notice: Undefined variable: HTTP_POST_FILES in C:\wamp\www\sdg\import\ips.php on line 3
Solution :
L'erreur est causée par l'utilisation de la variable obsolète $HTTP_POST_FILES. Utilisez plutôt $_FILES :
$folder = "upload/"; if (is_uploaded_file($_FILES['filename']['tmp_name'])) { if (move_uploaded_file($_FILES['filename']['tmp_name'], $folder . $_FILES['filename']['name'])) { echo "File uploaded"; } else { echo "File not moved to destination folder. Check permissions"; }; } else {s echo "File is not uploaded"; };
Code PHP amélioré :
Le code PHP amélioré suivant offre des fonctionnalités améliorées, notamment la vérification du type et la validation de la taille du fichier :
$target_dir = "upload/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION)); $allowedTypes = ['jpg', 'png']; if (isset($_POST["submit"])) { // Check file type if (!in_array($imageFileType, $allowedTypes)) { $msg = "Type is not allowed"; } // Check if file exists elseif (file_exists($target_file)) { $msg = "Sorry, file already exists."; } // Check file size elseif ($_FILES["fileToUpload"]["size"] > 5000000) { $msg = "Sorry, your file is too large."; } // Move file elseif (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { $msg = "The file " . basename($_FILES["fileToUpload"]["name"]) . " has been uploaded."; } } ?>
Code HTML :
<form action="upload.php" method="post">
Ce code amélioré garantit que seuls les types de fichiers autorisés sont téléchargés, évite les noms de fichiers en double et limite la taille des fichiers pour éviter de surcharger votre serveur.
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!