$_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 ;-)
    3
    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.
      0
  2. Contributeur
    Bonjour,

    Peu etre ca peut t aider :

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

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

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

        <pre><?php print_r($_POST); ?></pre>
        0
        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.
          0
          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
            2