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_Form PHP Discussion :

◦ Mise en place une restriction sur les types et la taille de fichiers téléchargeables


Sujet :

Zend_Form PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut ◦ Mise en place une restriction sur les types et la taille de fichiers téléchargeables
    Bonjour,

    Je suis entrain de développer un module de recrutement sous zend, j'ai un petit souci au niveau d'ajout de candidatures, en effet j'ai réussi (l'upload de fichier), je les postuler lors d'une ancienne discussion, mais ce que je n'arrive pas à faire c'est la restriction du type et la taille de fichier( je veux donner la possibilité de télécharger que les fichiers words ou pdf)
    si quelqu’un peut bien m'aider.
    Merci d'avance .

    ma fonction d'upload de fichier dans le contrôleur est la suivante:

    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
     
    public function ajoutCandidatureAction(){
     
       		$candidature					=  new RecrutementCandidature();
       		$offres 						=  new RecrutementOffre();
    		$offresText 					=  new RecrutementOffreText();
    	   	$translations           		=  new thermidorTranslation();
    	   	$languages						=  new ThermidorLanguage();
    	   	$defaultLanguage				=  $languages->getDefaultLanguage();
    	   	$language						=  (isset($this->params['lang']) && $this->params['lang'] != '') ? $this->params['lang'] : $defaultLanguage;
       		$listOffres						=  $offresText->getListOffresDisponibles(1,$language);
       		$url							= "{$this->params['module']}/index/ajout-candidature";
    		//Gestion des enregistrements de la table recrutement_candidature
    		$tcandidature							= array();
    		$tcandidature["candidatId"]				= $this->params["candidatId"];
    		$tcandidature["offreId"]				= $this->params["offreId"];
    		$tcandidature["langCode"]				= $this->params["lang"];
    		$tcandidature["candidatNom"]			= $this->params["candidatNom"];
    		$tcandidature["candidatPrenom"]			= $this->params["candidatPrenom"];
    		$tcandidature["candidatEmail"]			= $this->params["candidatEmail"];
    		$tcandidature["candidatAdresse"]		= $this->params["candidatAdresse"];
    		$tcandidature["candidatCv"]				= $this->params["candidatCv"];
    		$tcandidature["candidatLm"]				= $this->params["candidatLm"];
    		$tcandidature["candidatDate"]			= date("Y-m-d H:i:s");
    		// Upload de fichier
    		$adapter 								=  new Zend_File_Transfer();
    		$adapter->setDestination('D:\workspace\thermidor\public\upload');
    		$candidatCv                    		    = $adapter->getFileInfo(); 
    		$filePath = $adapter->getFileName();
    		$fileName = NULL;
    		if($filePath) {
    			$fileName = basename($filePath);	
    		}
    		//echo $mime = $adapter->getMimeType()."<br>";
    		//echo $size = $adapter->getFileSize();
    		//Création des candidatures
     
    		if($this->params["candidatId"] == ""){
    			if ($adapter->isUploaded()) {
    			 	$adapter->receive();
    				$tcandidature["candidatId"]		= NULL;      
    				$tcandidature["candidatCv"]		= PUBLIC_UPLOAD.$fileName;
    				if (!$fileName) {		
    				    $messages = $adapter->getMessages();
    				    echo implode("\n", $messages);
    				    $result = false;
    				}else{
    					$candidature->insert($tcandidature);
    					$result = true;
    				}		
    			$url .= $result ? "/op/succes" : "/op/erreur" ;
    			$this->gotoUrl($url);
    			}
    		}
     
     
       		//En cas de retour d'actions sur l'index directement
    		$message = "";														
    		if (isset($this->params['op']) && $this->params['op'] == "succes") {	//Succes
    			$message					= "Votre candidature a été enregistrée avec succès";
    		} else {																//Ratage
    			$message					= "Votre candidature n'a pas été enregistrée";
    		}
       		//Prépartaion de la vue
       		$this->view->messageOperation 			= $message;
    		$this->view->operation 					= $this->params['op'];
       		$this->view->params						= $this->params;
    	   	$this->view->langCode					= $this->params['lang'];
    		$this->view->offreId					= $this->params['offreId'];
    	   	$this->view->listOffres 				= $listOffres;
    }

  2. #2
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    Salut,
    Après un rapide appel à Google , voici qq pistes:
    http://framework.zend.com/manual/fr/...alidators.html
    est-ce que ça t'aide?
    Le monde se divise en deux: ceux qui utilisent le tag et les autres.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 149
    Points : 206
    Points
    206
    Par défaut
    Salut, il faut tester le type mime du fichier, + éventuellement son extension.

  4. #4
    Membre à l'essai
    Femme Profil pro
    -
    Inscrit en
    Septembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Septembre 2008
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Hello,

    Jette un oeil du coté des validateurs des champs d'envoie de fichiers
    http://framework.zend.com/manual/en/...alidators.html

    Pour les appliquer, tu dois créer ton élément d'envoie de fichier via un objet Zend Form Element File, et leur ajouter les validateurs qui t'intéresse.

    J'espère avoir pu t'aider

  5. #5
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut merci pour les réponse
    @tigunn
    ce lien est tres interessant:
    http://framework.zend.com/manual/fr/...alidators.html
    par contre l'ai du mal à bien placer le validateur:
    je te joins le code que j'ai fait mais l'ajout de la candidature se fait et la restriction de fichier ne se fait pas du coup.
    Merci de me dire si j'ai bien placer le validateur
    En fait je voulais accepter le téléchargement de fichiers word ou pdf.
    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
     
    public function candidaturesSpontAction (){
    		$candidature					=  new RecrutementCandidature();
    	   	$translations           		=  new thermidorTranslation();
    	   	$languages						=  new ThermidorLanguage();
    	   	$defaultLanguage				=  $languages->getDefaultLanguage();
    	   	$language						=  (isset($this->params['lang']) && $this->params['lang'] != '') ? $this->params['lang'] : $defaultLanguage;
       		$url							= "{$this->params['module']}/index/candidatures-spont/lang/{$this->params['lang']}";
    		//Gestion des enregistrements de la table recrutement_candidature
    		$tcandidature							= array();
    		$tcandidature["candidatId"]				= $this->params["candidatId"];
    		$tcandidature["langCode"]				= $this->params["lang"];
    		$tcandidature["candidatNom"]			= $this->params["candidatNom"];
    		$tcandidature["candidatPrenom"]			= $this->params["candidatPrenom"];
    		$tcandidature["candidatEmail"]			= $this->params["candidatEmail"];
    		$tcandidature["candidatAdresse"]		= $this->params["candidatAdresse"];
    		$tcandidature["candidatCv"]				= $this->params["candidatCv"];
    		$tcandidature["candidatLm"]				= $this->params["candidatLm"];
    		$tcandidature["candidatDate"]			= date("Y-m-d H:i:s");
    		// Upload de fichier
    		$adapter 								=  new Zend_File_Transfer();
    		$adapter->setDestination('D:\workspace\thermidor\public\upload');
    		$candidatCv                    		    = $adapter->getFileInfo(); 
    		$filePath = $adapter->getFileName();
    		$fileName = NULL;
    		if($filePath) {
    			$fileName = basename($filePath);	
    		}
    		//echo $mime = $adapter->getMimeType()."<br>";
    		//echo $size = $adapter->getFileSize();
    		//Création des candidatures
     
    		if($this->params["candidatId"] == ""){
     
    			if ($adapter->isUploaded()) {
    			 	$adapter->receive();
    				$tcandidature["candidatId"]		= NULL;      
    				$tcandidature["candidatCv"]		= PUBLIC_UPLOAD.$fileName;
    				if (!$fileName) {		
    				    $messages = $adapter->getMessages();
    				    echo implode("\n", $messages);
    				    $result = false;
    				}else{
    				// Limite les extensions à pdf et docx
    					$adapter->addValidator('Extension', false, 'pdf,docx');
    						if (!$adapter->isValid()) {
    				   			 echo 'Veuillez joindre des fichiers WORD ou PDF';
    						}
    					$candidature->insert($tcandidature);
    					$result = true;
    				}		
    			$url .= $result ? "/op/succes" : "/op/erreur" ;
    			$this->gotoUrl($url);
    			}
    		}

  6. #6
    Membre à l'essai
    Femme Profil pro
    -
    Inscrit en
    Septembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Septembre 2008
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Le problème c'est que tu test si $adapter est valide pour afficher le message d'erreur, mais que celui-ci soit valide ou non tu fais quand même l'ajout.

    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // Limite les extensions à pdf et docx
    $adapter->addValidator('Extension', false, 'pdf,docx');
    if (!$adapter->isValid()) {
    	echo 'Veuillez joindre des fichiers WORD ou PDF';
    }
    $candidature->insert($tcandidature);
    $result = true;
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // Limite les extensions à pdf et docx
    $adapter->addValidator('Extension', false, 'pdf,docx');
    if (!$adapter->isValid()) 
    {
        echo 'Veuillez joindre des fichiers WORD ou PDF';
        $result = false;
    }
    else
    {
        $candidature->insert($tcandidature);
        $result = true;
    }
    J'ai pas testé mais ca devrait déjà mieux marcher.

  7. #7
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    Bonjour,
    merci pour ta réponse, j'ai modifié mon code comme tu me l'avait suggérer mais l'ajout de candidature échoue,

  8. #8
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    sans l'ajout du validateur, ma fonction est la suivante:
    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
     
    public function ajoutCandidatureAction(){
     
       		$candidature					=  new RecrutementCandidature();
       		$offres 						=  new RecrutementOffre();
    		$offresText 					=  new RecrutementOffreText();
    	   	$translations           		=  new thermidorTranslation();
    	   	$languages						=  new ThermidorLanguage();
    	   	$defaultLanguage				=  $languages->getDefaultLanguage();
    	   	$language						=  (isset($this->params['lang']) && $this->params['lang'] != '') ? $this->params['lang'] : $defaultLanguage;
       		$listOffres						=  $offresText->getListOffresDisponibles(1,$language);
       		$url							= "{$this->params['module']}/index/ajout-candidature/lang/{$this->params['lang']}";
    		//Gestion des enregistrements de la table recrutement_candidature
    		$tcandidature							= array();
    		$tcandidature["candidatId"]				= $this->params["candidatId"];
    		$tcandidature["offreId"]				= $this->params["offreId"];
    		$tcandidature["langCode"]				= $this->params["lang"];
    		$tcandidature["candidatNom"]			= $this->params["candidatNom"];
    		$tcandidature["candidatPrenom"]			= $this->params["candidatPrenom"];
    		$tcandidature["candidatEmail"]			= $this->params["candidatEmail"];
    		$tcandidature["candidatAdresse"]		= $this->params["candidatAdresse"];
    		$tcandidature["candidatCv"]				= $this->params["candidatCv"];
    		$tcandidature["candidatLm"]				= $this->params["candidatLm"];
    		$tcandidature["candidatDate"]			= date("Y-m-d H:i:s");
    		// Upload de fichier
    		$adapter 								=  new Zend_File_Transfer();
    		$adapter->setDestination('D:\workspace\thermidor\public\upload');
    		$candidatCv                    		    = $adapter->getFileInfo(); 
    		$filePath = $adapter->getFileName();
    		$fileName = NULL;
    		if($filePath) {
    			$fileName = basename($filePath);	
    		}
    		//echo $mime = $adapter->getMimeType()."<br>";
    		//echo $size = $adapter->getFileSize();
    		//Création des candidatures
     
    		if($this->params["candidatId"] == ""){
    			if ($adapter->isUploaded()) {
    			 	$adapter->receive();
    				$tcandidature["candidatId"]		= NULL;      
    				$tcandidature["candidatCv"]		= PUBLIC_UPLOAD.$fileName;
    				if (!$fileName) {		
    				    $messages = $adapter->getMessages();
    				    echo implode("\n", $messages);
    				    $result = false;
    				}else{
    					$candidature->insert($tcandidature);
    					$result = true;
    				}		
    			$url .= $result ? "/op/succes" : "/op/erreur" ;
    			$this->gotoUrl($url);
    			}
    		}
     
     
       		//En cas de retour d'actions sur l'index directement
    		$message = "";														
    		if (isset($this->params['op']) && $this->params['op'] == "succes") {	//Succes
    			$message					= "Votre candidature a été enregistrée avec succès";
    		} else {																//Ratage
    			$message					= "Votre candidature n'a pas été enregistrée";
    		}
       		//Prépartaion de la vue
       		$this->view->messageOperation 			= $message;
    		$this->view->operation 					= $this->params['op'];
       		$this->view->params						= $this->params;
    	   	$this->view->langCode					= $this->params['lang'];
    		$this->view->offreId					= $this->params['offreId'];
    	   	$this->view->listOffres 				= $listOffres;
    }
    l'ajout marche bien sauf que je ne sais pas ou placer le validateur.
    Merci d'avance

  9. #9
    Membre à l'essai
    Femme Profil pro
    -
    Inscrit en
    Septembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Septembre 2008
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $adapter =  new Zend_File_Transfer();
    $adapter->setDestination('D:\workspace\thermidor\public\upload');
    Rajoute le validateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $adapter->addValidator('Extension', false, 'pdf,docx');
    Ce sera déjà mieux placé. Ensuite pour s'assurer de la validité de ton envoie, tu remplaces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $adapter->receive();
    //et tout ce qui suit jusqu'à
    $this->gotoUrl($url);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if ($adapter->isValid($candidatCv)){
        $adapter->receive();
        //et tout ce qui suit jusqu'à
        $this->gotoUrl($url);
    }
    La ca devrait fonctionner. Cette page explique comment se servir des fonctions de zend_file_transfert si jamais ... http://framework.zend.com/manual/en/...roduction.html

  10. #10
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    J'ai fait exactement ce que tu m'as dit , ça ne marche toujours pas.
    merci encore

  11. #11
    Membre à l'essai
    Femme Profil pro
    -
    Inscrit en
    Septembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Septembre 2008
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Peux-tu donner plus de détails quand tu nous dis que ca ne marche pas ? Quel réaction à la page ? Qu'est-ce qui est affiché ? Qu'est-ce qui devrait être affiché ?

  12. #12
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    je veux dire que l'ajout ne se fait plus, !!

  13. #13
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    si je modifie de cette façon l'ajout se fait mais prends toujours en compte les autres extensions, et aucune erreur mais au final le but n'ai pas atteint.
    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
     
    public function candidaturesSpontAction (){
    		$candidature					=  new RecrutementCandidature();
    	   	$translations           		=  new thermidorTranslation();
    	   	$languages						=  new ThermidorLanguage();
    	   	$defaultLanguage				=  $languages->getDefaultLanguage();
    	   	$language						=  (isset($this->params['lang']) && $this->params['lang'] != '') ? $this->params['lang'] : $defaultLanguage;
       		$url							= "{$this->params['module']}/index/candidatures-spont/lang/{$this->params['lang']}";
    		//Gestion des enregistrements de la table recrutement_candidature
    		$tcandidature							= array();
    		$tcandidature["candidatId"]				= $this->params["candidatId"];
    		$tcandidature["langCode"]				= $this->params["lang"];
    		$tcandidature["candidatNom"]			= $this->params["candidatNom"];
    		$tcandidature["candidatPrenom"]			= $this->params["candidatPrenom"];
    		$tcandidature["candidatEmail"]			= $this->params["candidatEmail"];
    		$tcandidature["candidatAdresse"]		= $this->params["candidatAdresse"];
    		$tcandidature["candidatCv"]				= $this->params["candidatCv"];
    		$tcandidature["candidatLm"]				= $this->params["candidatLm"];
    		$tcandidature["candidatDate"]			= date("Y-m-d H:i:s");
    		// Upload de fichier
    		$adapter 								=  new Zend_File_Transfer();
    		$adapter->setDestination('D:\workspace\thermidor\public\upload');
    		$candidatCv                    		    = $adapter->getFileInfo(); 
    		$filePath = $adapter->getFileName();
    		$fileName = NULL;
    		if($filePath) {
    			$fileName = basename($filePath);	
    		}
    		//echo $mime = $adapter->getMimeType()."<br>";
    		//echo $size = $adapter->getFileSize();
    		//Création des candidatures
     
    		if($this->params["candidatId"] == ""){
    		// Limite les extensions à pdf et docx
    					$adapter->addValidator('Extension', false, 'pdf,docx');
    					// Limite la taille de tous les fichiers à 40000 octets
    					$adapter->addValidator('FilesSize', false, 40000);
    						if (!$adapter->isValid($filePath)) {
    				   			 echo 'Veuillez joindre des fichiers WORD ou PDF ne dépassant pas 40000 octets';
    						}
    			if ($adapter->isUploaded()) {
    			 	$adapter->receive();
    				$tcandidature["candidatId"]		= NULL;      
    				$tcandidature["candidatCv"]		= PUBLIC_UPLOAD.$fileName;
    				if (!$fileName) {		
    				    $messages = $adapter->getMessages();
    				    echo implode("\n", $messages);
    				    $result = false;
    				}else{
    					$candidature->insert($tcandidature);
    					$result = true;
    				}		
    			$url .= $result ? "/op/succes" : "/op/erreur" ;
    			$this->gotoUrl($url);
    			}
    		}

  14. #14
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    En fait comme je n'ai pas réussi l'utilisation des validateurs sous zend, j'ai utilisé une autre solution qui me permet bien de vérifier l'extension des fichiers uploader:
    donc dans la vue ajout-candidature.phtml, j'ai ajouter un attribut au champ input de type file comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <input type="file"  class="input-label" id="candidatCv" name="candidatCv" maxlength="100000" accept="docx,pdf" 
    						value="<?php echo $this->candidat->candidatCv; ?>"/>
    et en jquery j'affiche un message d'erreur dans le cas ou une autre extension est téléchargée
    j'affiche le message d'erreur suivant:
    Veuillez entrer une valeur avec une extension valide.
    en jquery j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    jQuery.extend(jQuery.validator.messages, {
    accept: "Veuillez entrer une valeur avec une extension valide.",
    });
    Voila donc au final j'ai bien ce que j'attendai mais pas avec les validateurs de zend.

  15. #15
    Membre à l'essai
    Femme Profil pro
    -
    Inscrit en
    Septembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Septembre 2008
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Si tu utilises jquery pour effectuer une vérification de validité sans avoir l'équivalent en PHP, tu as un soucis.

    Imagine que je désactive le javascript sur mon navigateur. Je te conseille de faire le test, tu vas voir ce que ca donne.

    Enfin, si c'est pas important pour toi ... sinon je passerai plus tard dans la journée, je vais voir si j'ai raté quelque chose dans ton code ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/05/2016, 23h32
  2. Google Play : Restrictions sur les mises à jour automatiques
    Par Stéphane le calme dans le forum Android
    Réponses: 0
    Dernier message: 29/04/2013, 10h34
  3. Mise à jour d'une liste sur tous les ordinateurs
    Par nicolas_isi dans le forum JSF
    Réponses: 9
    Dernier message: 08/07/2009, 15h23
  4. Réponses: 2
    Dernier message: 07/03/2008, 10h29

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