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 :

move_uploaded_file Si le fichier existe rajoute un compteur 1.2.3 etc


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut move_uploaded_file Si le fichier existe rajoute un compteur 1.2.3 etc
    Bonjour ,

    J'ai un formulaire avec ajout de données + une photo (la photo se renomme avec l'ID Utilisateur, sachant qu'un utilisateur peu posté plusieurs photos (annonces) j'aimerai une commande quil ajoute un compteur 1.2.3 a fin de la photo si elle existe ;

    Pour l'instant ma commande est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    list($name, $ext) = explode(".", $nom);    
    $ext=".".$ext; 
    $chemin = "uploads/".$nom; 
     
     
    move_uploaded_file($_FILES['file']['tmp_name'], "uploads/$id_utilisateurs$ext");
    A l'heure actuelle, l'ID utilisateur "120" poste une premiere photo :
    Ce qui renomme en "120.png"

    J'aimerai que le script fasse une vérification du nom et si elle existe déjà ajoute comme ceux ci :
    "120-1.png" ou "120-2.png" ou "120-3.png" en fonction de la dernière photo mise (-1) peut être autre chose tant que cela marche)

    Merci à vous

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 244
    Points
    20 244
    Par défaut
    Le plus simple serait de garde dans une base de données (ou autre) une trace du nombre de photos de l'utilisateurs.
    Sinon il faut que tu vérifie si le fichier existe avant de le renommer et ça peut devenir long si le nombre de photos est important.

    Avec un parcours de toutes les images ca pourrait donner un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $name = "uploads/$id_utilisateurs$ext";
    $i = 1;
    while(file_exists($name))
    {
    	$name = "uploads/$id_utilisateurs-$i$ext";
    	$i++;
    }
     
    move_uploaded_file($_FILES['file']['tmp_name'], $name);

  3. #3
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut
    Bonjour,
    En faite c'est un script d'annonce que je fait et en gros ca donne cela :

    J'ai plusieurs tables liées :
    tb_utilisateurs/ tb_annonces / tb_photos / ETC ...... :

    tb_photos : Contient id_photo + Nom du fichier (file)

    Ensuite dans tb_annonces: je récupère l'id de la photo uploader dans un champ.

    Merci à toi, je vais essayé cela.

    Ps: pour
    ....... si le nombre de photos est important
    je compte faire un script de nettoyage qui vire les annonces et photos apres X mois. donc pas la peine de s'occupé de la place générée.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 244
    Points
    20 244
    Par défaut
    C'est pas la place généré qui est problématique , c'est le nombre potentiel d'itération que va faire le script qui est problématique. vérifier qu'un fichier existe est relativement long (accès disque ).

    Si tu as une base de données qui liste les photos des utilisateur , il faut repenser ton nommage de fichier.
    Un nom unique sera plus simple à gérer qu'un nom incrémenté puisque tu n'auras pas besoin de savoir ou tu en est.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $name = pathinfo($nom, PATHINFO_FILENAME);
    $ext = pathinfo($nom, PATHINFO_EXTENSION);
     
    $chemin = "uploads/"; 
    $nom_fichier = $id_utilisateurs."-".time().".".$ext; // time() rend le nom unique (sans s'embêter !)
     
    move_uploaded_file($_FILES['file']['tmp_name'], $chemin.$nom_fichier);

    N.B. Voir pathinfo()

  6. #6
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut
    Merci à toi jreaux62 je n'avais pas pensé à l'heure

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

Discussions similaires

  1. [Fichiers] existence d'un repertoire
    Par hebus73 dans le forum Access
    Réponses: 2
    Dernier message: 05/10/2005, 14h04
  2. Réponses: 2
    Dernier message: 05/09/2005, 17h32
  3. [langage] fichier existe?
    Par pascal.cargouet dans le forum Langage
    Réponses: 2
    Dernier message: 14/10/2004, 16h34
  4. Réponses: 3
    Dernier message: 13/07/2004, 11h48
  5. [langage] tester si un fichier existe
    Par schnecke dans le forum Langage
    Réponses: 3
    Dernier message: 02/03/2004, 12h24

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