IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Upload] renommer un fichier uploadé


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut [Upload] renommer un fichier uploadé
    slt à tous
    je vous expose mon blem parce la je suis un peu light...
    j'ai un formulaire qui me permet d'uploader un fichier.

    <form id="form1" enctype="multipart/form-data" name="form1" method="post" action="envoiform.php">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr class="Style4">
    <td valign="top" ><div align="right">Image : &nbsp;</div></td>
    <td>
    <input type="hidden" name="posted" value="1" />
    <input name="fichier" type="file" /> <br />Format image : .gif uniquement - Taille : 100px X 100px
    <br />
    <br /></td>
    </tr>
    <tr class="Style4">
    <td valign="top" ><div align="right">Nom : &nbsp;</div></td>
    <td><input name='nom' type='text' size='92' />......
    le fichier envoiform.php biensur

    //----------------------------
    // DEFINITION DES VARIABLES
    //----------------------------

    $target = 'images/armures/'; // Repertoire cible
    $extension = 'gif'; // Extension du fichier sans le .
    $max_size = 10000; // Taille max en octets du fichier
    $width_max = 100; // Largeur max de l'image en pixels
    $height_max = 100; // Hauteur max de l'image en pixels

    //---------------------------------------------
    // DEFINITION DES VARIABLES LIEES AU FICHIER
    //---------------------------------------------

    $nom_file = $_FILES['fichier']['name'];
    $taille = $_FILES['fichier']['size'];
    $tmp = $_FILES['fichier']['tmp_name'];


    //----------------------
    // SCRIPT D'UPLOAD
    //----------------------

    if(!empty($_POST['posted'])) {
    // On vérifie si le champ est rempli
    if(!empty($_FILES['fichier']['name'])) {
    // On vérifie l'extension du fichier
    if(substr($nom_file, -3) == $extension) {
    // On récupère les dimensions du fichier
    $infos_img = getimagesize($_FILES['fichier']['tmp_name']);

    // On vérifie les dimensions et taille de l'image
    if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size)) {
    // Si c'est OK, on teste l'upload
    if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target.$_FILES['fichier']['name'])) {
    // Si upload OK alors on affiche le message de réussite ...........
    mon souci c'est que je voudrais eviter que mon fichier uploadé écrase un fichier etant déja présent avec le meme nom.

    Je pense qu'il faut renomé les fichiers uploader en ajoutant +1 par exemple avant l'upload.

    Si quuelqu'un peut m'aider ca serait cool.
    Merci d'avance
    @+

  2. #2
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    au lieu de te faire chier avec des compteurs, moi j'utilise time(), comme il renvoie la date au moment ou tu l'upload, en version timestamp 124233222, c'est un identifiant unique, tu le colles à la fin ou au début de ton fichier, et hop tu as des fichiers uniques.

    Voila

  3. #3
    Membre habitué Avatar de krolineeee
    Inscrit en
    Mars 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 232
    Points : 173
    Points
    173
    Par défaut
    Citation Envoyé par Maxoo
    au lieu de te faire chier avec des compteurs, moi j'utilise time(), comme il renvoie la date au moment ou tu l'upload, en version timestamp 124233222, c'est un identifiant unique, tu le colles à la fin ou au début de ton fichier, et hop tu as des fichiers uniques.

    Voila

    Malin comme astuce

  4. #4
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    Merci, effectivement c'est pas bete comme idée le timestamp.
    Par contre tu fais comment pour l'integrer au niveau du code ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    Et si tu as deux personnes qui post en meme temps exactement t'es dans la m.....

    Meme si c'est tres rare ou meme presque infaisable c'est source d'erreur.

  6. #6
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    si on est dans le cas d'un énorme forum, je prend l'id du mec couplé avec le timestamp.

    Mais en fait ce truc c'est surtout pour qu'un personne puisse ajouter 4 documents à la suite mais avec le meme nom. donc pour plusieurs personnes avec l'ID ca revient à ça !!

    Voila !!

    P.S : bah oui, faut pas se prendre la tete avec autre chose, faut aller au plus simple !!

  7. #7
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    Citation Envoyé par spawns
    Par contre tu fais comment pour l'integrer au niveau du code ?
    A quel endroit du code exactement ????

  8. #8
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $target = 'images/armures/'
    $target.$_FILES['fichier']['name']
    ca va te créer ton fichier dans ce rep avec le nom $_FILES['fichier']['name'], suffit de le rajouter entre le rep et le nom

  9. #9
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    Désolé, je suis un peu boulet sur le coup mais
    je comprends pas ou ajouter le : time()
    par rapport à mon code.

    //----------------------------
    // DEFINITION DES VARIABLES
    //----------------------------

    $target = 'images/armures/'; // Repertoire cible
    $extension = 'gif'; // Extension du fichier sans le .
    $max_size = 10000; // Taille max en octets du fichier
    $width_max = 100; // Largeur max de l'image en pixels
    $height_max = 100; // Hauteur max de l'image en pixels

    //---------------------------------------------
    // DEFINITION DES VARIABLES LIEES AU FICHIER
    //---------------------------------------------

    $nom_file = $_FILES['fichier']['name'];
    $taille = $_FILES['fichier']['size'];
    $tmp = $_FILES['fichier']['tmp_name'];

  10. #10
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    Help !!!

  11. #11
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    time() te renvoie des chiffres, faut les stocker et apres tu concatenes.

  12. #12
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    En admettant que je stock mon time ainsi

    $alea=time();
    je ne vois pas ou faut 'il l'inserer dans le code.
    Le code que tu me donne ne fait pas partie du mon code ???

  13. #13
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    Ok c bon g pigé
    Merci à tous pour votre aide
    @+

  14. #14
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour à tous, j'ai besoin d'aide aussi, j'ai le même script à peu près, sauf que je l'ai adapté à mon site !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    <?php
     
     
    //----------------------------
    //  DEFINITION DES VARIABLES 
    //----------------------------
     
    $target     = 'upload/';  // Repertoire cible
    $extension  = 'jpg' && 'jpeg';      // Extension du fichier sans le .
    $max_size   = 2097152;   // Taille max en octets du fichier
    $width_max  = 800;        // Largeur max de l'image en pixels
    $height_max = 800;        // Hauteur max de l'image en pixels
     
    //---------------------------------------------
    //  DEFINITION DES VARIABLES LIEES AU FICHIER
    //---------------------------------------------
     
    $nom_file   = $_FILES['fichier']['name'];
    $taille     = $_FILES['fichier']['size'];
    $tmp        = $_FILES['fichier']['tmp_name'];
     
    //----------------------
    //  SCRIPT D'UPLOAD
    //----------------------
    ?>
    <html>
        <head>
            <title>Air2famille :: Envoyer un fichier JPG !</title>
        <style type="text/css">
    <!--
    body,td,th {
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    	font-size: 12px;
    }
    body {
    	background-color: #C6DB84;
    	margin-left: 0px;
    	margin-top: 0px;
    	margin-right: 0px;
    	margin-bottom: 0px;
    }
    -->
    </style></head>
        <body>
    <?php
    if(!empty($_POST['posted'])) {
        // On vérifie si le champ est rempli
        if(!empty($_FILES['fichier']['name'])) {
            // On vérifie l'extension du fichier
            if(substr($nom_file, -3) == $extension) {
                // On récupère les dimensions du fichier
                $infos_img = getimagesize($_FILES['fichier']['tmp_name']);
     
                // On vérifie les dimensions et taille de l'image
                if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size)) {
                    // Si c'est OK, on teste l'upload
                    if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target.$_FILES['fichier']['name'])) {
                        // Si upload OK alors on affiche le message de réussite
                        echo '<img src="ok.jpg" alt="ok" width="16" height="16"><b>Fichier envoyé avec succès !</b>';
                        echo '<hr />';
                        echo '<b>Fichier :</b> ', $_FILES['fichier']['name'], '<br />';
                        echo '<b>Taille :</b> ', $_FILES['fichier']['size'], ' Octets<br />';
                        echo '<b>Largeur :</b> ', $infos_img[0], ' px<br />';
                        echo '<b>Hauteur :</b> ', $infos_img[1], ' px<br />';
    					echo '<b>Code à insérer :</b> <input name="textfield" type="text" value="<a href="http://air2famille.free.fr/upload/&#39;, $_FILES[&#39;fichier&#39;" target="_blank">['name'], '][img]http://air2famille.free.fr/upload/', $_FILES['fichier']['name'], '[/img]</a>">';
                        echo '<hr />';
                        echo '<br /><br />';
                    } else {
                        // Sinon on affiche une erreur système
                        echo '<b>Problème lors de le téléchargement du fichier !</b><br /><br /><b>', $_FILES['fichier']['error'], '</b><br /><br />';
                    }
                } else {
                    // Sinon on affiche une erreur pour les dimensions et taille de l'image
                    echo '<b>Problème dans les dimensions ou taille de l\'image !</b><br /><br />';
                }
            } else {
                // Sinon on affiche une erreur pour l'extension
                echo '<b>Votre fichier ne comporte pas l\'extension .jpg !</b><br /><br />';
            }
        } else {
            // Sinon on affiche une erreur pour le champ vide
            echo '<b>Vous n\'avez pas choisi de fichier !</b><br /><br />';
        }
    }
    ?>        <form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="POST">
                <b>Envoyer une image JPG</b><br /><br />
                <input type="hidden" name="posted" value="1" />
                <input name="fichier" type="file" />
                <input type="submit" value="Envoyer l'image" />
            </form>
        </body>
    </html>
    Je n'ai pas compris comment le modifier, pouvez vous m'en dire un peu plus, que dois-je changer ?

    Merci d'avance pour vos réponses, malgré que ce sujet est été "résolu" !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Upload] renommer un fichier uploader !
    Par keishah dans le forum Langage
    Réponses: 3
    Dernier message: 04/10/2006, 21h22
  2. [Upload] Renommer un fichier avant de l'envoyer
    Par wishmastah dans le forum Langage
    Réponses: 10
    Dernier message: 02/04/2006, 01h25
  3. [Upload] Upload, renommer le fichier
    Par Alain15 dans le forum Langage
    Réponses: 15
    Dernier message: 14/02/2006, 14h06
  4. renommer un fichier uploadé
    Par Sowa dans le forum ASP
    Réponses: 2
    Dernier message: 07/02/2005, 09h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo