Php upload défaillante

Bonjour,

Je suis entrain de monter un site et en attendant d'avoir mes accès sur mon hébergeur je fais des essais en local, j'en suis à essayer d'uploader des images.

Voici mon code :

$dossier = 'C:/wamp/www/Geckos/Photo/'.$nom.'/';
mkdir($dossier, 0777);
$fichier = basename($_FILES['upfile']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['upfile']['tmp_name']);
$extensions = array('.png', '.gif', '.JPG', '.jpeg');
$extension = strrchr($_FILES['upfile']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);

echo "fichier ".$fichier;
echo "dossier ".$dossier;
echo"fonction ".$_FILES['upfile']['tmp_name']." gggggg ". $dossier . $fichier;
if(move_uploaded_file($_FILES['upfile']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}

C'est la dernière partie de code qui ne va pas il semblerait que la fonction move_uploaded_file retourne faux à chaque fois.
Enfin et ça je ne comprend pas pourquoi mais $_FILES['upfile']['tmp_name'] renvoie blanc et je ne sais pas quoi faire voici la partie formulaire

echo 'Photo 1 : <input name="upfile" type="file" size="50"><br />';

Aidez moi svp je tourne en rond depuis quelques heures déja.

Merci d'avance

6 réponses

  1. Contributeur
    dans ton formulaire, tu as bien mis le enctype comme ca:

    <form method="post" action="page.php" enctype="multipart/form-data">
    1. Oui je l'ai bien mis, je n'arrive pas a trouvé ce qui ne va pas
      1. Contributeur
        $nom est bien declaré?
        pexu tu envoyer ca sur un site que je teste?
        1. Ou as tu vu $nom?
        2. oui il récupère le champ formulaire $_POST['nom']
      2. Contributeur
        premiere ligne:

        $dossier = 'C:/wamp/www/Geckos/Photo/'.$nom.'/';

        1. dailleurs le mkdir fonctionne bien
      3. Contributeur
        donc tu as bien mis un $nom = $_POST['nom'], ok.

        fais un echo de ton upload_file pour voir ce qu' il te dit.

        1. $fichier = IMGP1922.JPG
          $dossier = C:/wamp/www/Geckos/Photo/jhhjg
          $_FILES['upfile']['tmp_name'] = il renvoi rien
          1. cest le resultat de echo
          2. c'est ca que vous vouliez?
          3. Contributeur
            upload est-il autorisé dans le php.ini?
          4. php.ini

            ;;;;;;;;;;;;;;;;
            ; File Uploads ;
            ;;;;;;;;;;;;;;;;

            ; Whether to allow HTTP file uploads.
            ; http://php.net/file-uploads
            file_uploads = On

            ; Temporary directory for HTTP uploaded files (will use system default if not
            ; specified).
            ; https://www.php.net/manual/en/ini.core.php#ini.upload-tmp-dir
            upload_tmp_dir = "c:/wamp/tmp"

            ; Maximum allowed size for uploaded files.
            ; https://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize
            upload_max_filesize = 10M
          5. up svp je suis toujours bloqué