Bonjour,
Voila je rencontre un petit problème avec mon code.
J'aimerais soumettre un fichier csv pour insérer son contenu dans une base données. Voilà ci-dessous toutes les parties de mon code
/**
*
* @Assert\NotBlank(message="Veuillez joindre un fichier Excel CSV !!!.")
* @Assert\File(
* mimeTypes={"application/csvm+json"},
* mimeTypesMessage = "Veuillez joindre un fichier Excel CSV !!!.",
* maxSize = "4M",
* maxSizeMessage = "Le fichier à joindre est trop volumineux !!!."
* )
*/
private $file;
public function getFile()
{
return $this->file;
}
public function setFile($file)
{
$this->file = $file;
return $this;
}
Un extrait de mon FormType
```
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('file', FileType::class, array(
'multiple' => false,
'required' => true,
'label' => 'Fichier CSV : '
))
;
}
```
Mon contrôleur
```
$uploadFile = new UploadCSVFile();
$formUploadFile = $this->createForm(UploadCSVFileType::class, $uploadFile);
$formUploadFile->handleRequest($request);
if($formUploadFile->isSubmitted() && $formUploadFile->isValid())
{
$file = $formUploadFile->get('file')->getData();
if(!empty($file))
{
$result = $this->get('catho.import_data')->execute($file, 'une_chaine');
if ($result) {
$this->get('session')->getFlashBag()->add('success', 'L\'opération d\'Insertion des données des étudiants dans la Base de Données a réussi !!!');
} else {
$this->get('session')->getFlashBag()->add('success', 'Echec d\'insertion des données. Vous ne pouvez pas joindre plusieurs fichiers !!!');
}
}
}
Enfin ma vue
<form method="post" action="" class="form-horizontal" role="form" enctype="multipart/form-data">
{{ form_errors(form) }}
<div class="form-group" style="margin-left: 15px;">
{{ form_label(form.file, null, { 'label_attr': {
'class': 'col-sm-3 control-label'
}}) }}
<div class="col-sm-4">
{{ form_errors(form.file) }}
{{ form_widget(form.file, { 'attr': {
'class': 'form-control'
}}) }}
</div>
</div>
<div class="form-group">
<input type="submit" value="Uploader" class="btn btn-default" />
</div>
{{ form_end(form) }}
</form>
J'aimerais pouvoir récupérer un objet de type UploadedFile pour pouvoir effectuer d'autres traitements permettant d'enregistrer son contenu dans la Base de données. Mais j'ai l'impression que mon code bloque au niveau de la validation du fichier uploadé.
Voilà plutôt ce que j'obtiens
Expected argument of type "string", "array" given