bigjohn02tw
Messages postés15Date d'inscriptionvendredi 2 mai 2003StatutMembreDernière intervention26 janvier 2009
-
1 févr. 2007 à 14:08
bigjohn02tw
Messages postés15Date d'inscriptionvendredi 2 mai 2003StatutMembreDernière intervention26 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é)
cs_putch
Messages postés624Date d'inscriptionmardi 6 mai 2003StatutMembreDernière intervention14 décembre 20091 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
bigjohn02tw
Messages postés15Date d'inscriptionvendredi 2 mai 2003StatutMembreDernière intervention26 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
// 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
}
}
JulSoft
Messages postés354Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention11 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...