$_FILES vide

Résolu/Fermé
TI2O Messages postés 13 Date d'inscription lundi 9 avril 2012 Statut Membre Dernière intervention 11 janvier 2014 - 9 avril 2012 à 15:11
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 12 avril 2012 à 14:08
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 samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 1 056
11 avril 2012 à 23:00
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 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 515
12 avril 2012 à 14:08
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 samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 1 056
10 avril 2012 à 12:50
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 lundi 9 avril 2012 Statut Membre Dernière intervention 11 janvier 2014 1
12 avril 2012 à 08:44
Merci,
l'erreur était bête mais il fallait la voir --'
1
le hollandais volant Messages postés 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 1 056
12 avril 2012 à 11:38
:)

N'oublies pas de passer le discussion en "résolu" !
0
TI2O Messages postés 13 Date d'inscription lundi 9 avril 2012 Statut Membre Dernière intervention 11 janvier 2014 1
10 avril 2012 à 21:26
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 samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 1 056
11 avril 2012 à 13:26
Ah, et pour le Post :

<pre><?php print_r($_POST); ?></pre>
0
TI2O Messages postés 13 Date d'inscription lundi 9 avril 2012 Statut Membre Dernière intervention 11 janvier 2014 1
11 avril 2012 à 16:29
la page renvoie :
Array
(
    [doc] => doc_test.txt
    [submit] => Envoyer
)
0
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
12 avril 2012 à 10:44
Bonjour,

Peu etre ca peut t aider :

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

@++
0