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

Zend Framework PHP Discussion :

comment renommer des fichier avec setmultiFile(4)


Sujet :

Zend Framework PHP

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut comment renommer des fichier avec setmultiFile(4)
    Bonsoir, j'ai enfin réussi à renommer mes fichiers uploader à la voler

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $monimage = new Zend_Form_Element_File('image');
    $monimage -> setLabel("télécharger une image");
                     ->setDestination('path');
    $nom_fichier->uploader->$monimage->getFileInfo();
    $nouveau_nom->"miniature".$nom_fichier['image']['name'];
    $monimage->addFilter('Rename',$nouveau_nom);
    $this->addElement($monimage,'image');
    après des jours de sueurs à la lecture de la doc et des test intempestif j'ai pu renomer le fichier télécharger avant de l'envoyer au controller, et de l'enregister dans le bon endroit, j'ai une question simple (enfin je crois )

    comment effectuer cette tâche avec plusieurs upload on va dire 4 par exemple.

    j'ai cette solution de répéter avec une boucle 4 fois le formulaire , en mettant évidemment 4 indices (que je n'ai pas testé, pour le moment je souhaite trouver la meilleur solution afin d'obtimiser mon temps)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    for ($i=0; $i <4;$i++)
    {
    $monimage[$i] = new Zend_Form_Element_File('image');
    $monimage[$i] -> setLabel("télécharger une image[$i]");
                     ->setDestination('path');
    $nom_fichier[$i->uploader->$monimage->getFileInfo();
    $nouveau_nom[$i]->"miniature".$nom_fichier['image']['name'];
    $monimage[$i]->addFilter('Rename',$nouveau_nom);
    $this->addElement($monimage,'image');
    }
    ou j'ai vu que Zend a gentilement concocter une methode qui permet de faire 4 chose d'affiller:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $monimage = new Zend_Form_Element_File('image');
    $monimage -> setLabel("télécharger une image");
                     ->setDestination('path');
    $nom_fichier->uploader->$monimage->getFileInfo();
    $nouveau_nom->"miniature".$nom_fichier['image']['name'];
    $monimage->addFilter('Rename',$nouveau_nom);
    $monimage->setMultiFile(4);
    $this->addElement($monimage,'image');
    comment je m'y prend pour renommer les 4 nom de fichier images ??
    dans la doc sur la partie ou il explique le setMultiFile(), il n'y a pas beaucoup d'explication

    voici la page en question:
    http://framework.zend.com/manual/fr/...dElements.html

    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
     
    Exemple #4 Définir plusieurs fichiers
     
    Créer un élément multifichier est identique à la création d'un élément unique. Appellez simplement setMultiFile() après que l'élément soit créé:
     
        $element = new Zend_Form_Element_File('foo');
        $element->setLabel('Uploadez une image:')
                ->setDestination('/var/www/upload');
        // s'assure qu'il y a un fichier au minimum, 3 au maximum
        $element->addValidator('Count', false, array('min' => 1, 'max' => 3));
        // Limite à 100K
        $element->addValidator('Size', false, 102400);
        // seulement des JPEG, PNG, et des GIF
        $element->addValidator('Extension', false, 'jpg,png,gif');
        // définit 3 éléments fichiers identiques
        $element->setMultiFile(3);
        $form->addElement($element, 'foo');
     
    Vous avez maintenant 3 éléments d'upload de fichier identiques avec les mêmes paramètres. Pour obtenir le nombre de fichiers multiples défini, appellez simplement getMultiFile().
    j'ai essayer un tous petit est en ajoutant avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            $this->addElement($upl_big, 'image');
    le fameu rename
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
           $monimage->addFilter('Rename','test');
    j'avais épérer d'avoir 4 fois le nom du fichier test, mais j'ai une belle erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Fatal error: Call to a member function addFilter() on a non-object in
    d'un autre côté, c'est peut être normal puisque c'est un array, il a du ne pas savoir quel fichier renomer parmis les 4, j'aurai bien mis un $i quelque par mais ou? ou faire avencer une incrémentation? je ne pense pas que je suis le seul à tomber sur ce problème qui est peut être pour vous facile a résoudre.

    si vous avez d'autre document qui développe multiple je suis toute oui

    avant de réponde à ma question, dit moi si vous l'avez compris ??

    je vous remercie d'avance d'avoir pris la penne de la lecture de ma question?

  2. #2
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Pour ma part je ne comprends pas à quoi peux bien te servir addFilter pourquoi tout n'est pas gérer au niveau des validateurs ?

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    merci de ta réponse, je vais donc essayer d'utiliser les validateurs, si j'utilise celui ci pour detecter si j'ai uploader ou pas une image ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
           $name_file="";
    $upload_file = new Zend_Validate_StringLength(array('min' =>1));
     
    if (!$upload_file->isValid($name_file)) {
        echo "on n'a pas uploader une image";
    }
    else
    {
        echo "on sauvegarde le nom de l'image";
    }

  4. #4
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Il sert a rien pour l upload car c est pour verifier qu une chaine de caractere a au moins un caractere

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    j'ai donc utiliser une mauvaise methode ? car je me suis dis que lorsqu'on télécharge pas une image, la zone de saisie et vide? donc s'il y au moin 1 caractère c'est qu'on a télécharger quelque chose.

    et je met à la place de isValide, isUploaded() ?

  6. #6
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Si tu ajoute setRequired a ton element ça suffit pour verifier qu un fichier a ete passé

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    j'ai rajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            $upl_big->setRequired('true');
            $upl_big->setMultiFile(4);
     
            $this->addElement($upl_big, 'upload_big');
    Ais-je utilisers la methode "setRequirede" correctement et passé l'élément true correctement.

    en faisant ceci problème de ma conception de mon forumulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    il y a 4 fichier à uploader, l'uploader n'est pas obligé d'uploader les 4 images, il peut soit en télécharger de 1 à 4; si j'en met 2, il va me sortie qu'il faudra uploader les 4
    de plus
    j'avais mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            $upl_big->addValidator('Count', false, array('min' => 1, 'max' => 4));
    ce validateur va exiger au minimum 1 à 4 .

    la methode setRequired sert exige bien qu'on uploader le fichier? ou je n'ai pas compris le fonctionnement de cette methode setRequired?

  8. #8
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    setRequired indique qu'il faut que l'élément du formulaire ne soit pas vide, si cela ne te vas pas essaye de voir avec le validateur count comme tu l'a indiqué, je ne l'ai jamais utilisé, je créé mes propres décorateurs quand le comportement n'est pas gérer par zend ou si ce dernier est compliqué

  9. #9
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    je vais reesayer de compter le nombre d'upload.

    sur ce lien
    http://framework.zend.com/manual/fr/...dElements.html

    ne comprend bien sur cette phrase.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cela dit, parfois vous aurez besoin d'appeller getValues() sans recevoir le fichier. Vous pouvez l'archiver en appellant setValueDisabled(true). Afin de recevoir la véritable valeur de ce flag vous pouvez appeller isValueDisabled().
    pourquoi mettons setValueDisable à true ?? pour empêcher si on est dans le controlleur de piocher ce qu'il y a dans getValue ??

    ent getValue() on peut l'appeller uniquement au controller ou on peut l'appeller aussi d'un fichier form.php dans le repertoire" form"

Discussions similaires

  1. renommer des fichiers avec python
    Par zekruss dans le forum Général Python
    Réponses: 9
    Dernier message: 16/11/2009, 19h09
  2. Comment ouvrir des fichiers avec GWT
    Par lila23 dans le forum GWT et Vaadin
    Réponses: 4
    Dernier message: 06/08/2009, 10h49
  3. Réponses: 4
    Dernier message: 20/02/2009, 14h44
  4. Comment envoyer des fichiers avec winsock2 ?
    Par x-programer dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 08/02/2009, 08h29
  5. Réponses: 0
    Dernier message: 01/09/2008, 20h17

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