Renommer un fichier uploadé

Fermé
Titouuuu94 - 12 juin 2013 à 10:15
 Titouuuu94 - 12 juin 2013 à 12:46
Bonjour à tous,

J'ai déjà trouvé des réponses à cette question, mais je n'ai pas réussi à les adapter à mon cas, j'ai fait un module d'upload de fichier en php, dont voici le code:

Attention la deuxieme partie après "//les variables du formulaire" ne sert qu'à remonter les données du formulaire dans la bdd.

J'aimerais savoir quoi modifier et comment le faire pour faire en sorte que lors de l'upload, mon fichier soit renommé par un numéro, en commencant de 1 incrémenté à chaque fois.

Merci d'avance pour vos retours

?php
//if(isset($_FILES['id_fich'])&& $_FILES['id_fich'] != NULL)

$dossier = 'upload/';
$fichier = basename($_FILES['id_fich']['name']);
$taille_maxi = 1024000;
$taille = ($_FILES['id_fich']['size']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx', '.accbd', '.mpp', '.txt', '.pdf','.PNG', '.GIF', '.JPG', '.JPEG', '.DOC', '.DOCX', '.XLS', '.XLSX', '.PPT', '.PPTX', '.ACCBD', '.MPP', '.TXT', '.PDF' );
$extension = strrchr($_FILES['id_fich']['name'], '.'); 
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau ci-dessus
{
     die('Vous devez uploader un fichier de type image: png, gif, jpg, jpeg, txt ou doc...<br><br><br>
	 <div class="row">
		  <div class="large-3 columns" >" " </div>" "
	<div class="large-3 columns" align="center" >
		   <a href="formulaire-ged-page.php" class="small button success">Retour</a> </div>
		  <div class="large-3 columns" align="center" >
		  <a href="accueil-ged.php" class="small button success">Accueil</a></div>
		  <div class="large-3 columns" >" " </div></div>');
}
if($taille>$taille_maxi)
{
     die('Le fichier est trop gros. <br> 
	 Vous pouvez soit :<br><br> <strong>Convertir votre fichier en image<br>Réduire la qualité de votre photo/image</strong><br><br>
	 <div class="row">
		  <div class="large-3 columns" >" " </div>" "
	<div class="large-3 columns" align="center" >
		   <a href="formulaire-ged-page.php" class="small button success">Retour</a> </div>
		  <div class="large-3 columns" align="center" >
		  <a href="accueil-ged.php" class="small button success">Accueil</a></div>
		  <div class="large-3 columns" >" " </div></div>');
}

if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //Formatage du nick fichier
     $fichier = strtr($fichier, 
          'àÁÂÃÄÅÇèéÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['id_fich']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE,  c'est ok
     {
          echo 'L\'upload de votre fichier a été réalisé avec succès !<br>';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          die ('Echec de l\'upload !<br>
		  Vérifiez le poids et le format de votre fichier<br><br>
	 <div class="row">
		  <div class="large-3 columns" >" </div>" "
	<div class="large-3 columns" align="center" >
		   <a href="formulaire-ged-page.php" class="small button success">Retour</a> </div>
		  <div class="large-3 columns" align="center" >
		  <a href="accueil-ged.php" class="small button success">Accueil</a></div>
		  <div class="large-3 columns" >"</div></div>');
     }
}

else
{
     echo $erreur;
}

//les variables du formulaire
		   $titre=$_POST['ti_cnx'];
		   $courdesc=$_POST['cd_cnx'];
		   $desc=$_POST['de_cnx'];
		   $kw=$_POST['mc_cnx'];
		   $clas=$_POST['clas_cnx'];
		   $spe=$_POST['spe_cnx'];
		   $cat=$_POST['cat_cnx'];
		   $niper=$_POST['niper_cnx'];
		   
//insertion des données dans la bdd
$chaine="INSERT INTO g6_fichier (id_util, id_serv,id_fich ,ti_cnx ,cd_cnx ,de_cnx ,mc_cnx ,clas_cnx ,spe_cnx ,cat_cnx ,niper_cnx )
VALUE ('', '', '','$titre', '$courdesc', '$desc', '$kw', '$clas', '$spe', '$cat', '$niper')";

$resultat=@mysqli_query($cx,$chaine) or die("Erreur SQL");

if (@mysqli_affected_rows($resultat)=="1")
	{echo "Oups !" ;
}
else {echo 'Il est maintenant disponible sur le Serveur !<br><br>
		  <div class="row">
		  <div class="large-3 columns" >" " </div>" "
	<div class="large-3 columns" align="center" >
		  <strong class="small button success">Visualiser</strong> </div>
		  <div class="large-3 columns" align="center" >
		  <a href="accueil-ged.php" class="small button success">Accueil</a></div>
		  <div class="large-3 columns" >" " </div></div>' ;
} ;
@mysqli_close($cx) ;
?>
A voir également:

1 réponse

J'ai peut être manqué de clarté.

l'id_fich correspond à un numéro dans la bdd, fichier 1 = 1, fichier 2 = 2, fichier 3 = 3 etc etc

Ce que je souhaite, c'est que le nom du fichier lors de l'upload soit remplacé par l'id_fich correspondant.

Imaginons que mon premier fichier uploadé soit tonton.jpg, j'aimerais qu'il devienne 1.jpg sur le serveur, le deuxieme fichier uploadé sera par exemple mamifere.doc et qu'il devienne 2.doc et ainsi de suite.

Comment faire ?
Merci
0