Upload plusieurs fichiers sur la même entité

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour à tous,

Tout d'abord félicitation aux staffs pour ce super site , en espérant une grand réussite .

Donc venant en à mon smoothie (euh … soucis :p) :

Je dispose d'une entité permettant l'upload de 3 images , pour permettre ceci j'ai utilisé le cookbook symfony suivant : http://symfony.com/fr/doc/current/cookbook/doctrine/file_uploads.html

Cependant, sur cet exemple , il permet l'upload de seulement 1'image vu que la propriété $file sera accordé seulement à 1 champ de ma base ?

Comment puis-je faire pour régler le problème ?

Merci d'avance de vos réponses

Édité par sofianlille

+0 -0

Cette réponse a aidé l'auteur du sujet

Hello,

Simple, tu fais plusieurs propriétés. file, file1, foo, camion… Peu importe son nom. Ce n'est pas parce que la propriété s'appelle file que Doctrine / Symfony se diront d'eux-même "tiens c'est un fichier".

"Meh." Outil de diff PHP : Totem

+0 -0

Ben ce qu'ils te proposent c'est en effet une façon de faire pour un fichier. Mais tu n'es pas tenu à faire comme ils disent ; tu peux te contenter d'avoir juste un path / fichier uploadé, et ensuite avoir une sorte de service qui peut te ressortir le tout.

Ou alors, tu peux aussi avoir ce genre de méthode dans ton entité, mais en spécifiant en paramètre le path sur lequel il faut agir :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
<?php
class MonEntite
{
    private $file1;
    private $camion;

    public function getAbsolutePath($path)
    {
        return null === $path ? null : $this->getUploadRootDir() . '/' . $path;
    }

    public function getWebPath($path)
    {
        return null === $path ? null : $this->getUploadDir() . '/' . $path;
    }

    // ...
}

Édité par Talus

"Meh." Outil de diff PHP : Totem

+0 -0

Salut !

Il y a une autre possibilité qui serait de créer une collection d'images, qui pourrait donc être une solution si chacune des trois images n'a pas de rôle précis. Une collection peut être limitée dans sa taille, d'après ce que j'ai vu dans la documentation.

Edit

Je pensais en fait à une entité Image qui contiendrait les méthodes de génération de chemin et d'upload lors des persistance et mise à jour, et ensuite, collection d'images.

Ça fonctionne aussi pour des fichiers simples  ;)

Édité par Ymox

Evitez qu'on vous dise de les lire : FAQ PHP et Symfony 2Tutoriel WAMP • Cliquez 👍 pour dire merci • Marquez vos sujets résolus

+0 -0
Auteur du sujet

Merci de vos réponses précises mais j'ai trouvé une autre solution qui reprend l'idée de Talus :

Exemple pour la fonction de preupload

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<?php
    public function preUpload()
    {   

        if (null !== $this->file) {
            // faites ce que vous voulez pour générer un nom unique
            //$this->image = $this->file.'.'.$this->file->guessExtension();
            $this->logoBaseline = $this->file->getClientOriginalName();         
            }
        if (null !== $this->file2) {
            $this->fondAccueil = $this->file2->getClientOriginalName();
            }
        if (null !== $this->file3) {    
            $this->logoFond = $this->file3->getClientOriginalName();
        }
    }
?>

Merci à tous

Édité par sofianlille

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte