$_FILES vide
Résolu
TI2O
Messages postés
16
Statut
Membre
-
txiki Messages postés 6514 Date d'inscription Statut Contributeur Dernière intervention -
txiki Messages postés 6514 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,
enregistrement,
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.
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
-
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 ;-) -
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 -
-
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. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Ah, et pour le Post :
<pre><?php print_r($_POST); ?></pre> -
la page renvoie :
Array ( [doc] => doc_test.txt [submit] => Envoyer ) -
Bonjour,
Peu etre ca peut t aider :
http://www.jjsteing.com/Webmastering.html
=> Send file.php
@++