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
je récupère donc mon fichier avec value
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');
ici y a déjà un problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $form->getValue('upload_big');
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
voici ma methode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 findDoublon($form->getValue())
ici je detecte bien les doublons et je les renoment, par contre pensez vous que je puisse faire plus obtimiser ?
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); } }
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![]()
Partager