Bonjour, a tous

j'aimerais chercher les doublons des noms des fichiers uploader car j'utlise rename() pour renomer les images , si je ne le fait pas et que on a 2 fichier du même nom, zend fera une erreur car il ne trouvera pas le fichier dans le même dossier en question puisqu'il qu'il a été modifier donc n'existe plus.

voic mon multi formulaire on peut uploader 4 fichier , je n'impose pas d'en avoir 4
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
                //==================upload image zom===========
        $upl_big = new Zend_Form_Element_File('upload_big');
        $upl_big->setLabel('Telecharger image princpal:')
                ->setDestination('../public/image/big/');
        $upl_big->addValidator('Count', false, array('min'=>0,'max'=>5));
        // Limite à 100K
        $upl_big->addValidator('Size', false, 102400);
        // seulement des JPEG, PNG, et des GIF
        $upl_big->addValidator('Extension', false, 'jpg');
        // définit 3 éléments fichiers identiques
        $upl_big->setMultiFile(4);
        $this->addElement($upl_big ,'upload_big');
je récupère donc mon fichier avec value
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$form->getValue('upload_big');
ici y a déjà un problème
soit on a uploader qu'une seul iamge -> on a $getValue = "mon image.jpg";


soit on n'upload plusieur image -> on a $getValue ="array()"

je suis du traiter ces 2 résulats différement.

j'ai donc implémenter un methode ( public function findDoublon($fd)) dans le controleur de la table qui s'appelle "car" .

donc j'envoie la réponse via le controlleur par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
findDoublon($form->getValue())
voici ma methode
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
 
    public function findDoublon($fd) {
       // var_dump($fd);
           $this->total_img = count($fd) ;
           if($this->total_img == 1)
           {
               echo "impossibe de traiter car ce n'est pas un array";
               echo "récupération du nom de l'image et insertion dans la bdd";
           }
           else
           {
               foreach ($fd as $scan) // je récupère sous forme $getValue('image') sous form d'image
               {
                   $find_double[] = $scan;
               }
 
                for($i=0; $i<3;$i++) //je crée une boucle pour imposer 4 nom de fichier même s'il n'on pas été uplaoder
                {
                    if(isset($find_double[$i+1])  ) //je vérifie si on n'a pas uploader l'image
                    {
                          $temp= $find_double[$i];
                          echo"----". $temp;
                    } 
                      else
                      {
                          $find_double[$i] ='nc.jpg'; //on remplis les infos par nc.jpg si on n'a pas uplaoder
                      }
                  }
 
                  var_dump ($find_double);
        }
    }
ici je detecte bien les doublons et je les renoment, par contre pensez vous que je puisse faire plus obtimiser ?

si oui , pouvez vous juste me dire la façon de faire après je chercherais et testerais votre solution

je vous remercie d'avance pour les réponses