j'ai que la forme (extension AbstractType
):Symfony3-ajax télécharger plusieurs fichiers en utilisant fetch et FormData
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('files', FileFieldType::class, [
'label' => 'Files',
'multiple' => true]
);
}
Cette forme minuscule dans le frontend (de ReactJS):
<form onChange={onChange} ref={node => form = node}>
<input type="file" multiple={multiple} name="file[files]" />
</form>
Je le téléchargement est déclenché ce qui se passe ce qui suit:
const data = new FormData(form);
fetch('/upload', {
method: 'POST',
headers: {
'Content-Type': 'multipart/form-data'
},
body: data
});
Mais sur le serveur aucun fichier n'arrive, donc dans le contrôleur :
$request->files->all(); //[]
et ainsi la forme n'est jamais valide, aussi.
Dans un test fonctionnel J'utilise ceci:
$client->request('POST', '/upload', [], ['file' => ['files' => $file]]);
où $file
fait référence à un objet de type UploadedFile
. Cela fonctionne, alors quelle est l'erreur ici?