Signaler

Comment renommer mes fichiers uploader ? [Résolu/Fermé]

Posez votre question PopKoRn88 79Messages postés jeudi 3 septembre 2009Date d'inscription 24 mars 2013 Dernière intervention - Dernière réponse le 15 juin 2017 à 17:02 par za
Bonjour, j'ai beau chercher partout et essayer tout j'ai du mal à renommer mes fichiers automatiquement quand je les upload; Quelqu'un pour m'aider ?
J'aimerais que les images prennent la forme img001.jpg, img002.jpg, img003.jpg, img034.jpg, img656.jpg, ...


<?php
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
        // Testons si le fichier n'est pas trop gros
        if ($_FILES['monfichier']['size'] <= 1000000)
        {
                // Testons si l'extension est autorisée
                $infosfichier = pathinfo($_FILES['monfichier']['name']);
                $extension_upload = $infosfichier['extension'];
                $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                if (in_array($extension_upload, $extensions_autorisees))
                {
                        // On peut valider le fichier et le stocker définitivement
                        $nom = "uploads/{$id_membre}.{$extension_upload}";
						$resultat = move_uploaded_file($_FILES['monfichier']['tmp_name'],$nom);
 
						if ($resultat) echo "Transfert réussi";
                }
        }
}
?>





Afficher la suite 
Utile
+6
plus moins
En fait c'est bon j'ai réussi. Je met mon code pour ceux qui aurait le même problème que moi :

<?php
mysql_connect("localhost","src10d01","64b61s"); 
mysql_select_db("basesrc10d01");

$select = mysql_query("SELECT * FROM aportfolio_info ORDER BY id DESC");
$donnees = mysql_fetch_array($select);

$numero = $donnees['id'];

$dossier = 'uploads/';
$taille_maxi = 10000000;
$taille = filesize($_FILES['monfichier']['tmp_name']);


$extensions = array('.png', '.gif', '.jpg', '.jpeg','.PNG', '.GIF', '.JPG', '.JPEG');




$fichier = basename($_FILES['monfichier']['name']); // indique le nom de ton fichier local
$extension = strrchr($_FILES['monfichier']['name'], '.'); // séparation de ton extension ex : .jpg du nom de ton fichier local

$fichier = "img".$numero.$extension; // renomme $fichier par le nom souhaité en rajoutant $extension


//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{

     $erreur = "Vous devez uploader un fichier de type png, gif, jpg, jpeg";

}
if($taille>$taille_maxi)
{
     $erreur = "Le fichier est trop gros...";
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['monfichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {		  

    mysql_query('INSERT INTO aportfolio_info (id, image) values ("", "'.$fichier.'")');

	echo "Transfert réussi";	  
		     
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de votre upload !<br /><br />';
     }
}
else
{
     echo $erreur;
}
?>


Il faut bien sûre avoir deux champs "id" et "image" dans la base de données.
za- 15 juin 2017 à 17:02
Merci énormément !!!! Tu viens de me sauver de 3jours de galère ^^
Répondre
Utile
+0
plus moins
essaye ceci :
$nomFichier = $_FILES['fichier1']["name"] ;  
$NewNomFichier = 'LeNomQueTuVeut';  
rename($nomFichier, $NewNomFichier);

(issu de http://www.commentcamarche.net/forum/affich-3103887-php-renommer-un-fichier)
Utile
+0
plus moins
En fait je suis en même temps sur un autre forum donc je suis sur une piste mais ça ne marche toujours pas. J'utilise l'id de mes articles dans ma base de données car les images seront liées aux articles. Voici mon code si tu peux m'aider:

<?php
$cx =  mysql_connect("localhost","*******","*******");
        if($cx == 0){
            ?>
            <font>ERREUR</font>
            </body></html>
            <?
            exit;
        }
$test = mysql_select_db("basesrc10d01");

$select = mysql_query("SELECT * FROM aportfolio_info ORDER BY id ASC");
$donnees = mysql_fetch_array($select);

$dossier = 'uploads/';
$taille_maxi = 10000000;
$taille = filesize($_FILES['monfichier']['tmp_name']);


$extensions = array('.png', '.gif', '.jpg', '.jpeg','.PNG', '.GIF', '.JPG', '.JPEG');




$fichier = basename($_FILES['monfichier']['name']); // indique le nom de ton fichier local
$extension = strrchr($_FILES['monfichier']['name'], '.'); // séparation de ton extension ex : .jpg du nom de ton fichier local

$fichier = "img001".$extension; // renomme $fichier par le nom souhaité en rajoutant $extension


//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{

     $erreur = "Vous devez uploader un fichier de type png, gif, jpg, jpeg";

}
if($taille>$taille_maxi)
{
     $erreur = "Le fichier est trop gros...";
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     
     $dernier_id = $donnees['id'];
     $fichier = "img".$dernier_id.$extension; // renomme $fichier par le nom souhaité en rajoutant $extension
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['monfichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {		  


	echo "Transfert réussi";	  
		     
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de votre upload !<br /><br />';
     }
}
else
{
     echo $erreur;
}
?>

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !