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 :

Renommer un fichier uploader


Sujet :

Zend Framework 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 Renommer un fichier uploader
    Bonjour,
    J'ai développé un formulaire d'ajout de candidature , et je fais l'upload de fichier, la fonction d'ajout marche très bien sauf que je veux renommer le fichier lors du téléchargement pour éviter d'avoir des problèmes lorsque deux fichiers du même nom seront uploader.
    me fonction d'ajout 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
     
    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);
    			}
    		}
    Merci d'avance pour votre aide.

  2. #2
    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 j'ai oublié de préciser que j'aimerai que le fichier puisse être renommer de la manière suivante:

    ▪ « CV » + horodatage + identifiant de l'offre + extention du fichier d'origine
    exemple: cv_20110601105512_12.ext

  3. #3
    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
    Après une recherche sur google, j'ai vu que c'était possible de le faire en utilisant les filtres sous zend donc avec le filtre "Rename" par contre je ne vois pas comment l'utiliser, j'ai trouvé un bout de code qui est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $upload = new Zend_File_Transfer();
     
    // Paramètre un dossier de destination
    $upload->addFilter('Rename', 'C:\image\uploads');
     
    // Paramètre un nouveau dossier de destination
    // et surcharge pour les fichiers existants
    $upload->addFilter('Rename', array('target' => 'C:\picture\uploads', 'overwrite' => true));

  4. #4
    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,
    Je suis toujours à la recherche d'une solution pour renommer les fichiers donc du coup j'ai trouvé un filtre qui me parait logique sauf que je n'arrive pas à récupérer l'extension du fichier.
    j'aimerai savoir s'il existe une librairie sous zend qui permet de récupérer l'extension des fichiers,
    en fait ce que je veux faire c'est utiliser le filtre suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $extension = $adapter->getExtension($filePath);
    $adapter->addFilter('Rename', 'cv_horodatage_offreId.$extension', $filePath);
    la methode getExtension n'existe pas donc du coup je n'arrive pas à récupérer l'extension.
    le filepath c'est le non du fichier qui est télécharger.
    merci d'avance pour votre aide.

  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
    RE,
    en fait je viens de trouver un moyen de renommer les fichiers téléchargés:
    de la manière 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
     
    if($this->params["candidatId"] == ""){
    			if ($adapter->isUploaded()) {
    				//recupérer l'extension du fichier pour pouvoir le renommer
    				$extension = end(explode('.', $fileName));
    				$date = date("Ymd-his");
    				// utilisation du validateur Rename pour pouvoir renommer le fichier
    				$adapter->addFilter('Rename', "cv.{$date}.{$extension}", $fileName);
    			 	$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;
    				}
    sauf que lors de l'ajout, le chemin qui est enregistré dans la base de donnée n'ai pas celui qui est renommer, je n'ai pas trouver le moyen de donner le bon non dans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $tcandidature["candidatCv"]		= PUBLIC_UPLOAD.$fileName;
    lorsque je mets une variable qui récupère le non du fichier , un message d'erreur s'affiche me disant qu'on ne peut pas remplacer un string par un objet , ce que je comprends parfaitement.
    donc du coup si quelqu'un peut bien m'aider à envoyer le bon nom du fichier
    merci d'avance

  6. #6
    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
    Et finalement, j'ai trouvé la solution,
    j'aurai juste du tout simplement récupérer le nom qui a été renommé.
    donc du coup la solution est comme suit : elle marche tres bien:
    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
     
    // Upload de fichier
    		$adapter 								=  new Zend_File_Transfer();
    		$adapter->setDestination('D:\workspace\thermidor\public\upload');
    		$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()) { 
    				//recupérer l'extension du fichier pour pouvoir le renommer
    				$extension = end(explode('.', $fileName));
    				$date = date("Ymdhis");
    				// utilisation du validateur Rename pour pouvoir renommer le fichier
    				$targetName = "cv_{$date}_{$this->params["offreId"]}.{$extension}";
    				$adapter->addFilter('Rename',$targetName,$fileName);
    			 	$adapter->receive();
    				$tcandidature["candidatId"]		= NULL;      
    				$tcandidature["candidatCv"]		= PUBLIC_UPLOAD.$targetName;
    				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);
    			}
    		}

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

Discussions similaires

  1. [Upload] renommer un fichier uploader !
    Par keishah dans le forum Langage
    Réponses: 3
    Dernier message: 04/10/2006, 21h22
  2. [Upload] renommer un fichier uploadé
    Par spawns dans le forum Langage
    Réponses: 13
    Dernier message: 08/07/2006, 20h29
  3. [Upload] Renommer un fichier avant de l'envoyer
    Par wishmastah dans le forum Langage
    Réponses: 10
    Dernier message: 02/04/2006, 01h25
  4. [Upload] Upload, renommer le fichier
    Par Alain15 dans le forum Langage
    Réponses: 15
    Dernier message: 14/02/2006, 14h06
  5. renommer un fichier uploadé
    Par Sowa dans le forum ASP
    Réponses: 2
    Dernier message: 07/02/2005, 09h23

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