Bonjour,
J'ai développé il y'a un moment un module de formulaire maison, que je décline souvent sur mes développement Joomla. Celui-ci propose un nouveau type de module à savoir "Formulaire" et l'ajoute sur le site.
Tout le code HTML, CSS & PHP est maison et est modifié selon le formulaire à envoyer. Ces formulaires fonctionnent parfaitement et envoie un mail pré-formaté.
Pour un client, j'ai dû ajouter un upload de fichier pour envoyer une pièce jointe. C'est là que ça se gâte. Impossible d'upload un fichier. Non pas que je n'arrive pas à gérer Jmail ou JInput, mais j'ai un $_FILES vide, niet, nada.
Je vous montre le code & l'arborescence simplifié :
Voici le code sans détails et très raccourci, ainsi que l'arborescence :
arborescence
default.php : le module donc le formulaire.
action.php : l'action du formulaire, géré en AJAX et qui s'affiche dans la partie "result" de mon fichier default.
le $_POST me sort tous mes champs input, alors que $_FILES me sort exactement array(0) { }
J'ai tout essayé, rien n'y fait.
: retourne NULL.
: retourne mes champs input MAIS pas mon champ files.
: not found.
Je n'y comprend plus rien. Pourtant j'ai bien le enctype... Est-ce déjà arrivé à quelqu'un ? Je suis dessus depuis 2 jours maintenant et je pense vraiment à abandonner et récupérer un module tout fait d'upload de fichier.
J'ai développé il y'a un moment un module de formulaire maison, que je décline souvent sur mes développement Joomla. Celui-ci propose un nouveau type de module à savoir "Formulaire" et l'ajoute sur le site.
Tout le code HTML, CSS & PHP est maison et est modifié selon le formulaire à envoyer. Ces formulaires fonctionnent parfaitement et envoie un mail pré-formaté.
Pour un client, j'ai dû ajouter un upload de fichier pour envoyer une pièce jointe. C'est là que ça se gâte. Impossible d'upload un fichier. Non pas que je n'arrive pas à gérer Jmail ou JInput, mais j'ai un $_FILES vide, niet, nada.
Je vous montre le code & l'arborescence simplifié :
Voici le code sans détails et très raccourci, ainsi que l'arborescence :
arborescence
Code:
-modules/ -mod_form/ -mod_form.php -mod_form.xml -tmpl/ -default.php -action.php -files/
Code HTML:
<form data-toggle="validator" enctype="multipart/form-data" role="form" method="post" action="<?= $mod; ?>/tmpl/action.php" id="contact_form"> <!-- plein d'input. --> <div class="form-group"> <div class="row"> <div class="col-sm-6"> <input type="hidden" name="MAX_FILE_SIZE" value="20000000" /> <label for="formUserfile">Ajouter une pièce jointe :</label> </div> <div class="col-sm-6"> <input type="file" name="userfile" id="formUserfile"> </div> </div> </div> <input type="submit" value="Envoyer" class="btn btn-default mybtn text-uppercase" /> </form> <div class="row"> <div class="col-xs-12 result"> </div> </div>
Code PHP:
var_dump($_POST);
var_dump($_FILES);
J'ai tout essayé, rien n'y fait.
Code PHP:
$file = JFactory::getApplication()->input->get('userfile');
Code PHP:
$jinput = JFactory::getApplication()->input;
Code PHP:
$filename = pathinfo($_FILES['userfile']['name'], PATHINFO_FILENAME);
Je n'y comprend plus rien. Pourtant j'ai bien le enctype... Est-ce déjà arrivé à quelqu'un ? Je suis dessus depuis 2 jours maintenant et je pense vraiment à abandonner et récupérer un module tout fait d'upload de fichier.
Commentaire