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 :

Upload des fichiers dans plusieurs champs dans le même formulaire


Sujet :

Symfony PHP

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut Upload des fichiers dans plusieurs champs dans le même formulaire
    Bonjour,

    j'essaye d'uploadé 4 fichiers dans 4 champs file déffirents de mon formulaire :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
     : 
    //MoEntity.php est la suivante :
    //upload les fichiers
        public function getFullFilePath() {
            return null === $this->fileNormal ? null : $this->getUploadRootDir(). $this->fileNormal;
            return null === $this->fileRollover ? null : $this->getUploadRootDir(). $this->fileRollover;
            return null === $this->fileSelected ? null : $this->getUploadRootDir(). $this->fileSelected;
            return null === $this->fileUnselected ? null : $this->getUploadRootDir(). $this->fileUnselected;
        }
     
        protected function getUploadRootDir() {
            // the absolute directory path where uploaded documents should be saved
            return $this->getTmpUploadRootDir().$this->getId()."/";
        }
     
        protected function getTmpUploadRootDir() {
            // the absolute directory path where uploaded documents should be saved
            return __DIR__ . '/../../../../web/uploads/files/';
        }
     
     
    // the file property can be empty if the field is not required
     
       /**
         * @ORM\PrePersist()
         * @ORM\PreUpdate()
         */
     
        public function uploadFileNormal() {
            if (null === $this->fileNormal) {
                return;
            }
            if(!$this->id){
                $this->fileNormal->move($this->getTmpUploadRootDir(), $this->fileNormal->getClientOriginalName());
            }else{
                $this->fileNormal->move($this->getUploadRootDir(), $this->fileNormal->getClientOriginalName());
            }
            $this->setFileNormal($this->fileNormal->getClientOriginalName());
        }
        public function uploadFileRollover() {
     
            if (null === $this->fileRollover) {
                return;
            }
            if(!$this->id){
                $this->fileRollover->move($this->getTmpUploadRootDir(), $this->fileRollover->getClientOriginalName());
            }else{
                $this->fileRollover->move($this->getUploadRootDir(), $this->fileRollover->getClientOriginalName());
            }
            $this->setFileRollover($this->fileRollover->getClientOriginalName());
        }
        public function uploadFileSelected() {
     
            if (null === $this->fileSelected) {
                return;
            }
            if(!$this->id){
                $this->fileSelected->move($this->getTmpUploadRootDir(), $this->fileSelected->getClientOriginalName());
            }else{
                $this->fileSelected->move($this->getUploadRootDir(), $this->fileSelected->getClientOriginalName());
            }
            $this->setFileSelected($this->fileSelected->getClientOriginalName());
        }
        public function uploadFileUnselected() {
     
            if (null === $this->fileUnselected) {
                return;
            }
            if(!$this->id){
                $this->fileUnselected->move($this->getTmpUploadRootDir(), $this->fileUnselected->getClientOriginalName());
            }else{
                $this->fileUnselected->move($this->getUploadRootDir(), $this->fileUnselected->getClientOriginalName());
            }
            $this->setFileUnselected($this->fileUnselected->getClientOriginalName());
        }
        /**
         * @ORM\PostPersist()
         */
     
        public function moveFileNormal()
        {
            if (null === $this->fileNormal) {
                return;
            }
            if(!is_dir($this->getUploadRootDir())){
                mkdir($this->getUploadRootDir());
            }
            copy($this->getTmpUploadRootDir().$this->fileNormal, $this->getFullFilePath());
            unlink($this->getTmpUploadRootDir().$this->fileNormal);
        }
        public function moveFileRollover()
        {
            if (null === $this->fileRollover) {
                return;
            }
            if(!is_dir($this->getUploadRootDir())){
                mkdir($this->getUploadRootDir());
            }
            copy($this->getTmpUploadRootDir().$this->fileRollover, $this->getFullFilePath());
            unlink($this->getTmpUploadRootDir().$this->fileRollover);
        }
        public function moveFileSelected()
        {
            if (null === $this->fileSelected) {
                return;
            }
            if(!is_dir($this->getUploadRootDir())){
                mkdir($this->getUploadRootDir());
            }
            copy($this->getTmpUploadRootDir().$this->fileSelected, $this->getFullFilePath());
            unlink($this->getTmpUploadRootDir().$this->fileSelected);
        }
        public function moveFileUnselected()
        {
            if (null === $this->fileUnselected) {
                return;
            }
            if(!is_dir($this->getUploadRootDir())){
                mkdir($this->getUploadRootDir());
            }
            copy($this->getTmpUploadRootDir().$this->fileUnselected, $this->getFullFilePath());
            unlink($this->getTmpUploadRootDir().$this->fileUnselected);
        }
     
       /**
         * @ORM\PreRemove()
         */
        public function removeFileNormal()
        {
            unlink($this->getFullFilePath());
            rmdir($this->getUploadRootDir());
        }
        public function removeFileRollover()
        {
            unlink($this->getFullFilePath());
            rmdir($this->getUploadRootDir());
        }
        public function removeFileSelected()
        {
            unlink($this->getFullFilePath());
            rmdir($this->getUploadRootDir());
        }
        public function removeFileUnselected()
        {
            unlink($this->getFullFilePath());
            rmdir($this->getUploadRootDir());
        }
    }
    Tous les 4 fichiers uploadé seront dans un dossier web/uploads/files/id/fichier1, fichier2... fichier4.
    Le soucis c'est que dans mon dossier : web/uploads/files/ je trouve que le fichier uplodé par le champ fileNormal (le 1er champ) :S
    quelqu'un peut m'aider ??
    Merci et bonne journée.

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 73
    Points : 74
    Points
    74
    Par défaut
    Il me semble que tes méthodes sont correct, sauf la première "getFullFilePath".
    Tu ne peux pas faire plusieurs returns, la fonction s’arrêtera au premier return.
    que voulais tu faire exactement avec cette fonction ? si tu veux récupérer tout les chemins, une idees serai de les stocke dans un tableau pour ensuite retourné ce tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    //MoEntity.php est la suivante :
    //upload les fichiers
        public function getFullFilePath() {
            $arrPathsToReturn = array();
            $arrPathsToReturn['normal'] = null === $this->fileNormal ? null : $this->getUploadRootDir(). $this->fileNormal;
            $arrPathsToReturn['rollover'] = null === $this->fileRollover ? null : $this->getUploadRootDir(). $this->fileRollover;
            $arrPathsToReturn['selected'] = null === $this->fileSelected ? null : $this->getUploadRootDir(). $this->fileSelected;
            $arrPathsToReturn['unselected'] = null === $this->fileUnselected ? null : $this->getUploadRootDir(). $this->fileUnselected;
            return $arrPathsToReturn;
        }
    C'est une idée parmi d'autre
    Je ne sais pas comment tu utilise tes fonctions mais cela pourrait venir de là

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/06/2014, 15h34
  2. [MySQL] modifier le début de deux champs dans plusieurs enregistrements d'une même table
    Par corbin dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/04/2011, 10h40
  3. Résultat de plusieurs champs dans un champ
    Par bastien dans le forum Requêtes
    Réponses: 0
    Dernier message: 20/05/2010, 22h34
  4. Réponses: 1
    Dernier message: 28/01/2009, 13h58
  5. Sum de plusieurs champs dans plusieurs tables
    Par Cylc dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/10/2006, 11h13

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