Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-10-2018 11:28:49

RomainG
Membre
Date d'inscription: 10-06-2015
Messages: 65

Upload de fichier non requis

Bonjour à tous,

je fais face à un petit problème dans un de mes formulaires. J'ai un formulaire qui permet à un utilisateur de modifier ses informations personnelles et d'ajouter un avatar s'il le souhaite.

L'ajout de l'avatar est non obligatoire mais lorsque je soumet mon formulaire, j'ai une erreur m'indiquant que le fichier uploadé est vide...

J'ai lu dans la doc que le fait d'utiliser un input de type file rajoutait automatiquement le validateur UploadFile de Zend mais même en mettant le champs en non requis, ça ne fonctionne pas...

Voici mon code du formulaire (fieldset)

Code:

[lang=php]public function init() {
$this->add([
            'name' => 'file',
            'type' => 'file',
            'attributes' => [
                'id' => 'person_file',
                'class' => 'input-file',
                'accept' => 'image/*'
            ],
            'options' => [
                'label' => 'avatar',
                'label_attributes' => [
                    'class' => 'btn btn-primary'
                ]
            ]
        ]);
}

public function getInputFilterSpecification() {
return [
'file' => [
                'required' => false,
                'allow_empty' => true,
                'continue_if_empty' => true,
                'validators' => [
                    [
                        'name' => 'FileExtension',
                        'options' => [
                            'extension' => ['jpg, jpeg, png'],
                            'message' => 'wrong_type_file'
                        ]
                    ],
                    [
                        'name' => 'FileSize',
                        'options' => [
                            'max' => '2MB',
                            'message' => 'file_too_large'
                        ]
                    ]
                ],
            ]
];
}

Et le code de mon controller :

Code:

[lang=php]if ($request->isPost()) {
            $data = \array_merge_recursive($request->getPost()->toArray(), $request->getFiles()->toArray());
            $form->setData($data);
            if ($form->isValid()) {

            } else {

                        }
        }

Quand je débug mes données, j'ai toujours ceci :

Code:

[lang=php]
'file' => 
        array (size=5)
          'name' => string '' (length=0)
          'type' => string '' (length=0)
          'tmp_name' => string '' (length=0)
          'error' => int 4
          'size' => int 0

Avez-vous une idée d'où ça peux venir et comment faire un sorte que je puisse soumettre mon formulaire sans avoir à télécharger obligatoirement un avatar ?

Merci d'avance pour vos réponses wink
Romain

Hors ligne

 

#2 23-10-2018 14:52:56

shishi
Membre
Date d'inscription: 17-03-2013
Messages: 67

Re: Upload de fichier non requis

Bonjour,
je ne sais pas si cela peut t'aider mais il existe maintenant des "Optional Input Filter", personnellement je n'utilise pas zend-form mais j'ai déjà utilisé les filtre optionnels.

Cordialement

Hors ligne

 

#3 24-10-2018 15:41:19

RomainG
Membre
Date d'inscription: 10-06-2015
Messages: 65

Re: Upload de fichier non requis

Bonjour,

malheureusement, ma version de Zend est trop vieille et n'implémente pas ces nouveaux Input Filter.

D'autres idées ?

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages