$_FILES vide

Résolu
Salut,

je voudrais faire un système d'upload via $_files mais mon code "bug"
je ne vois pas où, si quelqu'un peu m'aider...

voici le code allégé (le code n'est pas très sécurisé mais ce n'est pas là l'important ):

formulaire,

<form method="post" action="enre_doc.php" enctype="multipart/from-data">


	<label for="doc"/>Vous devez choisir le document a envoyer : </label> 		
	<input type="file" name="doc" id="doc" /><br/>
	<input type="submit" name="submit" value="Envoyer" />

</form>


enregistrement,
<?php


	if (isset($_FILES['doc']) AND $_FILES['doc']['error'] == 0)
	{
	move_uploaded_file($_FILES['doc']['tmp_name'], 'doc/'.basename($_FILES['doc']['name']));	
	$name = $_FILES['doc']['name'];
	echo '<span class="win">Le fichier a bien été envoyé </span>';
	echo '<p>Votre fichier ' .$name. ' a bien été envoyer dans le dossier "doc".</p>';
	}
       else
	{
	$name = $_FILES['doc']['name'];
	echo '<span class="lose">Une erreur est survenu</span>';
	echo '<p>Votre fichier ' .$name. ' n\'a pas put être envoyé, vérifié que celui-ci ne fait pas plus de 8 MO.</p>';
	}

	echo $_FILES['doc']['name']. ' --> nom <br/>' .$_FILES['doc']['type']. ' --> type <br/>' .$_FILES['doc']['size']. ' --> taille <br/>' .$_FILES['doc']['tmp_name']. ' --> adresse temporaire <br/>' .$_FILES['doc']['error']. ' --> erreur <br/>';
		
	?>


ce dernier code ne m'écrit que :
--> nom
--> type
--> taille
--> adresse temporaire
--> erreur
avec un message d'erreur (répété 6 fois...) :

Notice: Undefined index: doc in /opt/lampp/htdocs/sff/enre_doc.php on line 59

merci d'avance de vos réponse.

7 réponses

  1. Ah, après quelques tests j'ai la même chose que toi.
    Mais j'ai trouvé, et le problème est très simple :

    Dans la première ligne du HTML, il faut mettre « form-data » et non pas « from-data » (tu inverses le « o » et le « r ») :

    <form method="post" action="enre_doc.php" enctype="multipart/form-data">


    Voilà, c'est tout !
    Normalement ça marche ;-)
    1. Contributeur
      Salut, j'avais vu la même erreur mais j'ai eu des doutes (étant débutant) voyant que personne n'en parlait. Ça m'apprendra pour la prochaine fois.
  2. Contributeur
    Bonjour,

    Peu etre ca peut t aider :

    http://www.jjsteing.com/Webmastering.html
    => Send file.php

    @++
    1. Merci,
      l'erreur était bête mais il fallait la voir --'
      1. :)

        N'oublies pas de passer le discussion en "résolu" !
    2. la page renvoie :
      Array
      (
          [doc] => doc_test.txt
          [submit] => Envoyer
      )
      1. Ah, et pour le Post :

        <pre><?php print_r($_POST); ?></pre>
        1. J'ai essayé mais le résultat n'est pas positif,
          l'array est vide :
          Array
          (
          )

          j'ai regardé les config php, apparemment elle sont bonne.
          1. Salut !

            Peux-tu nous dire ce qu'affiche ce code :

            <pre><?php  print_r($_FILES); ?></pre>

            (placé sur la page de récupération, donc enre_doc.php

            L'envoie de fichiers doit également être activé dans le fichier de configuration de PHP : https://www.commentcamarche.net/faq/889-php-upload-de-fichiers