Maison >développement back-end >tutoriel php >Comment dépanner un Move_uploaded_file() qui ne fonctionne pas en PHP ?

Comment dépanner un Move_uploaded_file() qui ne fonctionne pas en PHP ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-18 14:18:03823parcourir

How to Troubleshoot a Non-Functioning Move_uploaded_file() in PHP?

Dépannage de la fonction Move_uploaded_file()

Lors du téléchargement de fichiers via une application Web, il est essentiel de s'assurer que la fonction move_uploaded_file() fonctionne parfaitement. Cependant, les utilisateurs peuvent rencontrer des cas où cela semble ne pas fonctionner comme prévu.

Dans cet article, nous examinerons le problème du non-fonctionnement de move_uploaded_file() et proposerons des solutions pour le résoudre.

Présentation du problème

L'utilisateur a implémenté un script PHP qui utilise la fonction move_uploaded_file() pour gérer les téléchargements de fichiers. Cependant, malgré la réplication du code fourni dans les didacticiels, la fonction ne fonctionne pas correctement.

Analyse du code

Le code HTML du formulaire et du script de téléchargement semble être correct. Il inclut les attributs nécessaires pour l'entrée du fichier et soumet les données au script upload_file.php.

Dans upload_file.php, le script extrait correctement les informations sur le fichier téléchargé, y compris son nom, son emplacement temporaire, sa taille et code d'erreur. Cependant, la fonction move_uploaded_file() est mal utilisée, entraînant l'échec.

Solution

Pour résoudre le problème, deux étapes sont cruciales :

  1. Activer le rapport d'erreurs PHP :
    Cela permet à PHP d'afficher des messages d'erreur détaillés, ce qui peut aider à identifier la cause première du problème.
  2. Vérifiez le code d'erreur :
    La variable $_FILES'image' contient un code d'erreur indiquant la raison de l'échec. Les codes d'erreur courants incluent :

    • UPLOAD_ERR_OK : aucune erreur
    • UPLOAD_ERR_INI_SIZE : la taille du fichier dépasse le maximum autorisé par le serveur
    • UPLOAD_ERR_FORM_SIZE : la taille du fichier dépasse le maximum autorisé par le formulaire
    • UPLOAD_ERR_NO_FILE : Aucun fichier n'a été téléchargé
    • UPLOAD_ERR_PARTIAL : Le fichier n'a été que partiellement téléchargé

Code final corrigé

Une fois ces problèmes résolus, le code corrigé ressemble à ceci :

<code class="php">
<?php
$move = __DIR__.'/../../uploads/';
echo $_FILES["file"]['name']."<br>";
echo $_FILES["file"]['tmp_name']."<br>";
echo $_FILES["file"]['size']."<br>";
echo $_FILES['file']['error']."<br>";
move_uploaded_file($_FILES['file']['tmp_name'], $move);
?>
</code>

Dans ce code mis à jour, le nom de fichier temporaire (tmp_name) est utilisé à la place du nom de fichier d'origine (name), ce qui garantit que le le fichier est correctement déplacé vers l'emplacement souhaité.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn