Maison >développement back-end >tutoriel php >Pourquoi est-ce que j'obtiens l'erreur « Variable non définie : HTTP_POST_FILES » lors du téléchargement de fichiers en PHP ?
Télécharger un fichier à l'aide de PHP : dépannage de l'erreur "Variable non définie : HTTP_POST_FILES"
Le téléchargement de fichiers sur un serveur à l'aide de PHP peut être un processus simple . Cependant, il est essentiel de corriger toute erreur pouvant survenir au cours du processus.
Problème :
Une erreur se produit lors de la tentative de téléchargement d'un fichier à l'aide de PHP : "Avis : Variable non définie : HTTP_POST_FILES".
Cause :
Le $HTTP_POST_FILES La variable fait référence au tableau global qui stocke les informations sur les fichiers téléchargés. Cependant, son utilisation est obsolète depuis PHP 4.1.0 et son utilisation n'est pas recommandée.
Solution :
Les versions PHP modernes s'attendent à une structure différente pour accéder aux données des fichiers téléchargés. Au lieu de $HTTP_POST_FILES, utilisez la méthodologie suivante :
$_FILES["file_name"]["key"]
Où :
Exemple de code :
Le code PHP amélioré suivant adhère aux meilleures pratiques en matière de téléchargement de fichiers :
$target_dir = "upload/"; $target_file = $target_dir . basename($_FILES["filename"]["name"]); $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION)); $allowedTypes = ['jpg', 'png']; if (isset($_POST["submit"])) { // Check file type if (!in_array($imageFileType, $allowedTypes)) { echo "Type is not allowed"; } // Check if file already exists elseif (file_exists($target_file)) { echo "Sorry, file already exists."; } // Check file size elseif ($_FILES["filename"]["size"] > 5000000) { echo "Sorry, file is too large."; } else { // Upload file if (move_uploaded_file($_FILES["filename"]["tmp_name"], $target_file)) { echo "File uploaded successfully."; } } }
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!