Bonjour,
J'essaie actuellement d'automatiser l'un de nos traitements en fournissant un fichier JSON rempli avec des infos sur quelques-uns de nos produits, et de l'utiliser pour alimenter une table avec.
Mon problème se situe au niveau de la récupération après upload. J'ai essayé de copier un peu le fonctionnement du module carousel et de son upload d'image.
<form name="dimensionsUpload" method="post" action="{url path="/admin/module/dimension/upload"}" class="clearfix">
<div class="form-group">
<label for="dimensions" class="control-label">Chargez le fichier <i>"dimension.json"</i></label>
<div class="input-group">
<input type="file" id="dimensions" required="required" name="dimensions" class="form-control">
<span class="input-group-btn">
<input type="submit" class="form-submit-button btn btn-sm btn-success" value="Mettre à jour les dimensions" >
</span>
</div>
</div>
</form>
Au début j'ai tenté de créer vraiment un Form, de le déclarer, de le valider dans le contrôleur... Ce qui me génère une foule d'erreur donc je suis reparti sur une récupération du formulaire plus simple :
public function uploadDimensions() {
$request = $this->getRequest();
$form = $request->request->get('dimensionUpload');
$fileBeingUploaded = $request->files->get(sprintf('%s[file]', $form->get('dimensions')), null, true);
$dimensions = json_decode($fileBeingUploaded, true);
var_dump($dimensions);
exit();
}
Lorsque j'ajoute mon fichier via ce form, j'obtiens cette erreur :
Fatal error: Call to a member function get() on null in BackOfficeController.php on line 117
//La ligne ne question :
$fileBeingUploaded = $request->files->get(sprintf('%s[file]', $form->get('dimensions')), null, true);
C'est évidemment l'objet $form qui est null. J'obtiens aussi un résultat null si j'essaie "$request->request->get('dimensions')".
J'ai beau essayer plein de petites choses, il n'est jamais rempli et je ne suis plus assez lucide pour voir ce qui ne va pas
À tout hasard, il existerait pas un autre moyen d'ouvrir un fichier uploadé pour en parcourir le contenu ? Les méthodes de PHP de type $_FILES ne me conviennent pas non plus.
Last edited by HeishPi (04-07-2019 08:30:18)