IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Uploader une image [Symfony]


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Par défaut Uploader une image [Symfony]
    Bonjour,

    J'ai crée un mini blog d'articles avec une entité Article qui contient les propriétés title, description et picture.

    Quand je veux uploader un fichier image et que je soumets le formulaire j'ai cette erreur "Please upload a valid document PDF". Or, je veux upload des images.

    J'ai bien suivi la doc suivante : https://symfony.com/doc/5.4/controller/upload_file.html
    et celle là : https://nouvelle-techno.fr/articles/...symfony-4-et-5

    Voici le code du champ Picture de mon formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ->add('picture', FileType::class, [
                'label' => 'Chargez ici une photo',
                'required' => false,
                'mapped' => false,
            ])
    J'ai essayé également de rajouter la class new File comme indiqué dans la doc Symfony.

    Mon service.yaml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    parameters:
        images_directory: '%kernel.project_dir%/public/uploads'
    J'a bien évidemment ajouté le dossier uploads dans public.

    Mon controller avec le traitement du champ Picture:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    $article = new Article();
     
            $form = $this->createForm(NewArticleType::class, $article); 
     
            $form->handleRequest($request);
     
    if($form->isSubmitted() && $form->isValid()) {
     
                $image = $form->get('picture')->getData();   
     
     
                if ($image) {
                    $fichier = md5(uniqid()) . '.' . $image->guessExtension();
     
                    $image->move(
                        $this->getParameter('images_directory'),
                        $fichier, 
                    );
                }
     
                $article->setPicture($fichier);
    L'erreur que j'ai quand je soumets une image :

    Nom : Capture.PNG
Affichages : 1350
Taille : 7,4 Ko


    Je vous remercie d'avance pour l'aide apportée

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 502
    Par défaut
    Si vous avez suivi à la lettre le lien donnée , alors vous devez modifier les contraintes de src/Form/ProductType.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     'constraints' => [
                        new File([
                            'maxSize' => '1024k',
                            'mimeTypes' => [
                                'application/pdf',
                                'application/x-pdf',
                            ],
                            'mimeTypesMessage' => 'Please upload a valid PDF document',
                        ])

  3. #3
    Membre confirmé
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Par défaut
    Merci ca fonctionne après avoir ajouté ces lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'constraints' => [
                    new File([
                        'maxSize' => '1024k',
                        'mimeTypes' => [
                            'image/*',
                        ],
                        'mimeTypesMessage' => 'Please upload a valid jpg document',
                    ])
                ]
    L'image est bien sauvegardée dans le dossier uploads et en BDD.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. uploader une image dans un autre formulaire
    Par jonathan.ohayon dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 03/05/2006, 23h04
  2. uploader une image sur le serveur
    Par kespy13 dans le forum Langage
    Réponses: 5
    Dernier message: 07/04/2006, 20h01
  3. [Image]Lancer l'api du scanner pour uploader une image ?
    Par mikemead dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 30/03/2006, 20h27
  4. [Upload] uploader une image avec move_uploades_file
    Par pod1978 dans le forum Langage
    Réponses: 6
    Dernier message: 31/01/2006, 13h50
  5. Uploader une image à partir d'un formulaire ?
    Par netwebzone dans le forum Langage
    Réponses: 2
    Dernier message: 28/11/2005, 09h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo