Renommer un fichier

bigjohn02tw Messages postés 15 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 26 janvier 2009 - 1 févr. 2007 à 14:08
bigjohn02tw Messages postés 15 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 26 janvier 2009 - 2 févr. 2007 à 15:45
Salut à tous,

  Je suis en train de faire quelques pages en php mais je rencontre un problème. le voici:

 J'aimerais faire un upload des fichiers puis les renommer suivant un ordre.
Exple:
 
 fichier cours.pdf  deviendra après upload  mescours-01.pdf
 fichier discours.pdf deviendra après upload  mescours-02.pdf
 fichier examen.pdf deviendra après upload  mescours-03.pdf
ainsi de suite.... (quelque soit le fichier uploadé)

Si quelqu'un peut m'aider alors un grand merci

4 réponses

cs_putch Messages postés 624 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 14 décembre 2009 1
1 févr. 2007 à 14:48
salut !

bah la solution a mon avis c'est de parcourir le repertoire contenant tes PDF. tu récupere les chiffres dans le nom du fichier (avec substr ou un ereg). tu incrémente cette valeur et tu l'utilise pour rénommer ton fichier.

voila 1 piste.

n'hésite pas a poster ce que tu code si tu cale à un endroit

++
0
bigjohn02tw Messages postés 15 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
1 févr. 2007 à 16:37
Salut,

   J'ai compris mais le vrai problème est que si ce n'est le même fichier pdf de départ, l'uploald ne s'effectue pas ni le renommage. voici mon code, que j'ai cherché sur le net

if(!empty($_FILES["annee_jo"]["name"])){
   
    $type_jo = $_POST['type_jo'] ;
    $annee_jo = $_POST['annee_jo'] ;
   
   
    // Nom du fichier choisi:
    $nomFichier = "JO ".$annee_jo.".pdf";
  
   
    // Nom temporaire sur le serveur:
    $nomTemporaire = $_FILES["annee_jo"]["tmp_name"] ;
    // Type du fichier choisi:
    $typeFichier = $_FILES["annee_jo"]["type"] ;
    // Poids en octets du fichier choisit:
    $poidsFichier = $_FILES["annee_jo"]["size"] ;
    // Code de l'erreur si jamais il y en a une:
    $codeErreur = $_FILES["annee_jo"]["error"] ;
    // Extension du fichier
    $extension = strrchr($nomFichier, ".");
    // location du fichier
    $file_adresse = $DESTINATION_FOLDER.$nomFichier;
   
    if($poidsFichier <> 0){
        // Si la taille du fichier est supérieure à la taille
        // maximum spécifiée => message d'erreur
        if($poidsFichier < $MAX_SIZE){
            // On teste ensuite si le fichier a une extension autorisée
            if(isExtAuthorized($extension)){
                    // on vérifie si le fichier n'existe pas
                if (!file_exists ($file_adresse))
                    {
                     $file_newName = $nomFichier; // il gardera alors le nom de départ
                    $uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$file_newName);
                //$upload = true; // tout est ok on peut uploader
                //$_result = 0; // Code pour un envoie simple et effectuer
                    }
                    elseif (file_exists ($file_adresse))
                    {
                    // A l'aide d'expressions régulières on extrait :
                    $expR = eregi("^(.*)[.](.*)$" , $nomFichier , $expRa); // le nom et l'extension
                    $expR = eregi("^(.*)[(]([0-9]*)[)]$" , $expRa[1] , $expRb); //verifie si le fichier ne se termine pas déja par (x)
                    $file_num = $expRb[2]; // le numero deja affecté. Le  x dans ficiher(x).ext
               
                    $exist_file_info = stat($file_adresse); //relève des information sur le fichier déja existant
                    //$exist_file_size = $file_info[7]; // relève le poids en octets
                // Si le fichier à envoyer n'a pas le même poids que le fichier déjà présent et du même nom
                    //if ($exist_file_size != $poidsFichier)
                    //{
                    // si le fichier a deja un compteur x  >>> fichier(x).ext
                        if (!empty($expRb[2]))
                        {   
                            $file_num++; // On incremente le compteur
                            $file_newName = $expRb[1].'('.$file_num .').'.$expRa[2];
                            // Tant qu'il y a un fichier du nouveau nom choisi on incrémente
                            while (file_exists($DESTINATION_FOLDER.$file_newName))
                            {    $file_num++;
                                $file_newName = $expRb[1].'('.$file_num .').'.$expRa[2];
                           
                            }
                               
                        }
                        // si le fichier n'a pas encor de compteur on lui en creer un
                        else
                        {
                            $file_newName = $expRa[1].'-1.'.$expRa[2];
                            // Tant qu'il existera un fichier avec le compteur qu'on souhaite lui attribuer on incrémente le compteur
                            while (file_exists($DESTINATION_FOLDER.$file_newName))
                            {
                            $file_num++;
                            $file_newName = $expRa[1].'-'.$file_num .'.'.$expRa[2];
                            }
                           
                        }
                    $uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$file_newName);
                    //$upload = true; // tout est ok on peut uploader
                    //$_result = 1; // Code pour un envoie dans le cas d'un fichier déja existant et renommer
                  }
            }
           
}           
           
}           
           
           
}           

Si quelq'un a un code similaire, Grand Merci
0
JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 mars 2013
2 févr. 2007 à 09:34
J'ai eu un problème du genre une fois. La solution que j'avais alors utilisée était de ne pas utiliser move_uploaded_file() mais rename(). Chez moi ça fonctionnait, reste à voir si c'est reproductible...
0
bigjohn02tw Messages postés 15 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
2 févr. 2007 à 15:45
Pouvez-vous me faire voir votre code? Ce sera interessant
0
Rejoignez-nous