$_FILES vide

Résolu
TI2O Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
txiki Messages postés 6596 Date d'inscription   Statut Contributeur Dernière intervention   -
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

le hollandais volant Messages postés 4998 Date d'inscription   Statut Membre Dernière intervention   1 057
 
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
txiki Messages postés 6596 Date d'inscription   Statut Contributeur Dernière intervention   521
 
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
le hollandais volant Messages postés 4998 Date d'inscription   Statut Membre Dernière intervention   1 057
 
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
TI2O Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci,
l'erreur était bête mais il fallait la voir --'
1
le hollandais volant Messages postés 4998 Date d'inscription   Statut Membre Dernière intervention   1 057
 
:)

N'oublies pas de passer le discussion en "résolu" !
0
TI2O Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
le hollandais volant Messages postés 4998 Date d'inscription   Statut Membre Dernière intervention   1 057
 
Ah, et pour le Post :

<pre><?php print_r($_POST); ?></pre>
0
TI2O Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   1
 
la page renvoie :
Array
(
    [doc] => doc_test.txt
    [submit] => Envoyer
)
0
jjsteing Messages postés 1670 Date d'inscription   Statut Contributeur Dernière intervention   181
 
Bonjour,

Peu etre ca peut t aider :

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

@++
0