Problème upload file Symfony 4.1

128 views
Skip to first unread message

Virgil Moreau

unread,
Apr 30, 2019, 4:47:11 AM4/30/19
to Association Francophone des Utilisateurs de Symfony
Bonjour à tous,

Depuis quelques temps je bloque sur l'envoie de d'image, j'ai suivie le tuto symfony : https://symfony.com/doc/4.1/controller/upload_file.html

Mon entité :

/**
 * @ORM\Column(type="string", nullable=true)
 * @Assert\File(
 * mimeTypes = {
 * "image/png",
 * "image/jpeg",
 * "image/jpg",
 * "image/gif"
 * },
 * mimeTypesMessage="Seul les documents au format PGN,JPEG,JPG,GIF sont acceptés")
 */

private $avatar;

public function getAvatar()
{
 
return $this->avatar;
}

public function setAvatar($avatar)
{
 $this
->avatar = $avatar;

 
return $this;
}

Pas d'erreur pour un fichier PNG, mais pour un fichier PDF : Serialization of 'Symfony\Component\HttpFoundation\File\UploadedFile' is not allow

Je corrige donc l'erreur comme ceci :

public function getAvatar(): ?string
{
    return $this->avatar;
}

public function setAvatar(string $avatar): self
{
    $this->avatar = $avatar;

    return $this;
}

Voici ce que j'obtient pour un fichier PNG : 

Argument 1 passed to App\Service\FileUploader::upload() must be an instance of Symfony\Component\HttpFoundation\File\UploadedFile, string given, called in /srv/symfony/src/Controller/UserController.php on line 38


pour un fichier PDF : aucun problème j'ai bien mon message "Seul les documents au format PGN,JPEG,JPG,GIF sont acceptés".

J'ai testé d'autre solution, mais les mêmes erreurs apparaissent, je tourne en rond.

Merci de votre aide !

Lien Github du projet : https://github.com/lolerki/soonr

PS : J'utilise docker

Mathias Duchossoy

unread,
Apr 30, 2019, 5:05:32 AM4/30/19
to asso...@googlegroups.com
Bonjour,

Il te suffit simplement de retirer le "string" dans la parenthèse de ton set.

En effet, le paramètre est un coup en string puis un UploadFile.

Cordialement.

--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "Association Francophone des Utilisateurs de Symfony".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse asso-afsy+...@googlegroups.com.
Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout.

Wulfrik

unread,
Apr 30, 2019, 5:08:12 AM4/30/19
to asso...@googlegroups.com

Bonjour,

Pour ta première version, pour la seconde erreur y a déjà eu une réponse entre temps ;)

J'ai eu le même soucis dernièrement avec un upload de fichier csv, la seule solution qu'on a trouvé a été de retirer le fichier un fois récupéré

$file = $request->files->get('csv_file');
/**
 * POUR EVITER Serialization of 'Symfony\Component\HttpFoundation\File\UploadedFile' is not allowed
 * après un POST du formulaire contenant un fichier
 */
$request->files->remove('csv_file');
C'est à l'affichage de formulaire une fois l'upload fait que le soucis se posait

Virgil Moreau

unread,
Apr 30, 2019, 5:10:09 AM4/30/19
to Association Francophone des Utilisateurs de Symfony
Merci de ta réponse,

J'ai déjà essayé cette solution, mais cela ne change rien.

J'ai cette erreur pour les fichier PNG : 

Argument 1 passed to App\Service\FileUploader::upload() must be an instance of Symfony\Component\HttpFoundation\File\UploadedFile, string given, called in /srv/symfony/src/Controller/UserController.php on line 38


Et cette erreur pour les fichier PDF :

Serialization of 'Symfony\Component\HttpFoundation\File\UploadedFile' is not allowed
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse asso...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages