Renomme un fichier a uploader

Résolu/Fermé
sofiane3993 Messages postés 64 Date d'inscription mardi 6 janvier 2015 Statut Membre Dernière intervention 10 février 2015 - 13 janv. 2015 à 10:17
sofiane3993 Messages postés 64 Date d'inscription mardi 6 janvier 2015 Statut Membre Dernière intervention 10 février 2015 - 13 janv. 2015 à 16:05
Bonjour,

je souhaiterai savoir si il est possible d'insérer automatiquement l'année et le mois quand l'utilisateur va insérer son fichier ou si il faut qu'il le renomme auparavant.
par exemple : 201501_fichier.pdf
j'ai trouver ce code mais peut ton faire ce que je souhaite

<?php
$fichier = $_FILES['fichier']['name'];
$content_dir = 'upload/';
$tmp_file = $_FILES['fichier']['tmp_name'];
 
$file_type = $fichier;
$file_type_length = strlen($file_type) - 3;
$file_type = substr($file_type, $file_type_length);
$file_type = strtolower($file_type);
 
 
$nouveau_nom = time().'.'.$file_type;
move_uploaded_file($tmp_file, $content_dir . $nouveau_nom);
?>



A voir également:

4 réponses

jordane45 Messages postés 38308 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
13 janv. 2015 à 11:02
Bonjour,

Si tu veux l'année et le mois au lieu de l'heure... tu peux remplacer
$nouveau_nom = time().'.'.$file_type;

Par
$nouveau_nom = date('ym').'.'.$file_type;
0
sofiane3993 Messages postés 64 Date d'inscription mardi 6 janvier 2015 Statut Membre Dernière intervention 10 février 2015 2
13 janv. 2015 à 11:47
je vais essayer
0
sofiane3993 Messages postés 64 Date d'inscription mardi 6 janvier 2015 Statut Membre Dernière intervention 10 février 2015 2
13 janv. 2015 à 14:05
euh j'ai ce message d'erreur qui s'affiche Notice: Array to string conversion in C:\wamp\www\final\formulaire.php on line 34
Mais a vrais dire je ne vois pas ou est le problème
voila mon code :

<html>
    <body>
    <head>
        <title>fin de l'upload</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
            <?php

		// Ici on teste le fait que le fichier a bien été envoyé et si il n'y a pas d'erreur
		if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
			
                    {
                    /* La ligne de code ci dessous permet de voir si le fichier n'est pas trop lourd
                    * if ($_FILES['monfichier']['size'] <= 1000000)
                    * Attention ici 1000000 correspond a 1Mo soit 1 000 000 octets ainsi si le ficheir dépasse 1Mo le fichier est refusé 
                    */
                    {
			// Vérification de l'extension du fichier ici .pdf
			$infosfichier = pathinfo ($_FILES ['monfichier']['name']);
			$extension_upload = $infosfichier['extension'];
			$extensions_autorisees = array ('pdf');
                                
                                
                                
                            if (in_array ($extension_upload, $extensions_autorisees))
                                {
                                    //Validation du transfert de fichier
                                        // Le Fichier existe sur le serveur si oui alors impossble de transferer
                                        //if(file_exists('uploads/' . $_FILES['monfichier']['name']))
                                        //{
                                        //die('Impossible de transférer votre fichier car le nom de celui existe déjà.');
                                        //}
                                $nouveau_nom = date('ym').'.'.$infosfichier;
                                move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/' .basename ($nouveau_nom));
                                    echo "votre fichier a été transférer<br /><br />";	echo "nous sommes le : ". strftime ("%d %m %Y ", filemtime("uploads/"));			
                                }
                            else 
                                echo "transfert impossible car votre fichier n'a pas la bonne extension "
                                . "nous rappelons que les fichiers pouvant être transférer sont des pdf <br> merci de votre compréhension<br /><br />";
                    }
                    }   
            ?>
</body>
</html> 

0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
13 janv. 2015 à 14:54
Salut,

La fonction php pathinfo() retourne un tableau, ta variable $infosfichier est donc un tableau.

Si tu veux concaténer l'extension du fichier, tu dois accéder à l'élément 'extension' de ce tableau :
$nouveau_nom = date('ym') . '.' . $infosfichier['extension'];


Bonne journée
0
sofiane3993 Messages postés 64 Date d'inscription mardi 6 janvier 2015 Statut Membre Dernière intervention 10 février 2015 2
13 janv. 2015 à 15:15
bonjour,

d'accord merci :)
je vais essayer cela
0
sofiane3993 Messages postés 64 Date d'inscription mardi 6 janvier 2015 Statut Membre Dernière intervention 10 février 2015 2
13 janv. 2015 à 15:17
bon jusque la ok mais j'ai encore une question comment puis je garger quand meme le nom initial du fichier par exemple tout en rejoutant l'année et le mois .

par exemple fichier.pdf devien 201501_fichier.pdf
0
sofiane3993 Messages postés 64 Date d'inscription mardi 6 janvier 2015 Statut Membre Dernière intervention 10 février 2015 2
13 janv. 2015 à 15:22
ou alors je fais une lettre d'info aux utilisateur de comment ecrire le nom de leur fichier ??
qu'en pensez vous??
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
13 janv. 2015 à 15:42
Ça dépend pour qui est destiné ton script, mais en général on évite de se fier à l'utilisateur, c'est la principale source d'erreur ;)
Sinon :
$nouveau_nom = date('ym') . '_' . $_FILES['monfichier']['name'] . '.' . $infosfichier['extension'];
0
sofiane3993 Messages postés 64 Date d'inscription mardi 6 janvier 2015 Statut Membre Dernière intervention 10 février 2015 2
13 janv. 2015 à 15:57
daccord merci beaucoup et encore une petite question pour le moment l'année se met avec les deux dernier chiffre on peut mettre l'année complète ou pas par exemple on a pour le moment 1501_nomfichier.pdf est que c'est possible de faire afficher 201501_nomfichier.pdf apres si ce n'est pas possible ce n'est pas grave car vous m'avez deja bien aidé
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
Modifié par Pitet le 13/01/2015 à 16:01
$nouveau_nom = date('Ym') . '_' . $_FILES['monfichier']['name'] . '.' . $infosfichier['extension'];


Tous les formats possibles de la fonction date() sont disponibles ici : https://www.php.net/manual/fr/function.date.php
0
sofiane3993 Messages postés 64 Date d'inscription mardi 6 janvier 2015 Statut Membre Dernière intervention 10 février 2015 2
13 janv. 2015 à 16:05
oh merci merci merci, merci de tout coeur j'ai cru que j'allais devenir fou avec ces codes et merci pour le lien car je ne connai pas encore toute les subtilité des codes je vais de ce pas regarder tout cela :)
0