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 de photos


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 106
    Par défaut Upload de photos
    Bonjour,

    Je voudrais uploader une photo a partir d'un formulaire situé sur la page "fee_inscription_e2", tous ce passe correctement.
    Une fois la photo Uploader ,je valide, un script (cf en dessous) la teste, l'enregistre dans un dossier puis fais un retour vers "fee_inscription_e2" avec affichage de la photo.

    Si je veux changer ma photo je refais l'opération, j'uploade a nouveau puis je valide a nouveau le formulaire , le script change la photo

    Le problème , lorsque je retourne sur "fee_inscription_e2", la nouvelle photo ne s'affiche pas, c'est l'ancienne qui reste et je suis obligé de faire un rafraichissement manuel du navigateur pour voir s'afficher ma nouvelle photo, savez vous pourquoi?

    Je met en dessous la partie PHP qui traite de la photo sur le fichier "fee_inscription_e2":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    $file="photos/picp".$_SESSION['id_membre'].".jpg";
    if (file_exists ($file))
    echo ("<img src=\"$file\" alt=\"photo principale\" />");
    else
    echo ("<img src=\"photos/thumbnail.jpg\" alt=\"photo principale\" />");
    ?>
    le script traitant de la photo est celui ci

    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
     
    <?php
     
    //ouverture session
    session_start();
    $_SESSION['poid']=NULL;
    $_SESSION['picp']=$_FILES['picp'];
     
    //Si photo existe , on efface
    if (file_exists('../photos/picp'.$_SESSION['id_membre'].'.jpg'))
    unlink('../photos/picp'.$_SESSION['id_membre'].'.jpg');
     
    //Récupération de l'image
    $img=imagecreatefromjpeg($_FILES['picp']['tmp_name']);
     
    // Test du poid de l'image
    $poid=$_FILES['picp']['size'];
    if ($poid<=2097152){
     
    //si poid correct alors on enregistre dans le dossier
     
    //Récupération taille de l'image
    $taille=getimagesize($_FILES['picp']['tmp_name']);
    $largeur=$taille[0];
    $hauteur=$taille[1];
     
    //image de destination
    $img_dest=imagecreatetruecolor(60,75);
    $copy=imagecopyresampled($img_dest,$img,0,0,0,0,75,60,$largeur,$hauteur);
     
    //enrgistrement de l'image
    //imagejpeg($img_dest);
    imagejpeg($img_dest,'../photos/picp'.$_SESSION['id_membre'].'.jpg');
     
    //destruction de l'image en mémoire
    imagedestroy($img_dest);
    }
    else{
    $_SESSION['poid']=1;
    }
     
    header("location:http://localhost/fee_inscription_e2.php");
    ?>
    PS: je verifie bien l'enregistrement du fichier , lorsque je change la photo, la première est bien écrasé au niveau de l'enregistrement.

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    a priori, la nouvelle image a le meme nom que l'ancienne.
    Or, l'ordi garde en mémoire ce nom (en cache), ainsi que l'image (ancienne).

    Ce qui explique pourquoi il (l'ordi) ne cherche pas plus loin et continue à afficher l'ancienne image, tant qu'on n'a pas fait une "actualisation" manuelle.

    Ce n'est donc pas un problème au niveau de ton programme.

    Mais tu pourrais résoudre ce souci en changeant à chaque fois le nom de l'image enregistrée.
    (ce qui oblige l'ordi à aller chercher la bonne image ...)

    Ca risque de modifier ta façon d'enregistrer les images :
    --> ajouter un champ "nomavatar" dans ta BD, par exemple, pour y enregistrer le nom de l'image

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 106
    Par défaut n'y a t'il pas d'autres solutions?
    d'effacer le cache contenant le fichier précédent par exemple?

    a+

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par salsabouge Voir le message
    effacer le cache contenant le fichier précédent
    Oui, ce serait plus simple !
    ou "forcer" le rafraichissement de la page par un "refresh",
    ou voir du coté de "flush()"
    (mais je connais trop mal ces fonctions pour t'aider efficacement)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 106
    Par défaut merci jreaux 62!
    quelqu'un a une idée pour effacer le cache et ainsi forcer l'ordinateur a relire un fichier modifié?

    Merci


  6. #6
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    Bonjour

    Citation Envoyé par salsabouge Voir le message
    quelqu'un a une idée pour effacer le cache et ainsi forcer l'ordinateur a relire un fichier modifié?
    http://antoine-herault.developpez.co...hp/headers/#L5
    http://cyberzoide.developpez.com/html/meta.php3#plus

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 106
    Par défaut merci 12monkeys
    mais ca ne fonctionne toujours pas je ne peux changer la photo qu'avec le bouton de rafraichissement.

    d'autres idées??

    En passant par javascript peut etre?? mais peut on dans ce cas gérer les fichiers?

    merci a vous

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 106
    Par défaut trouvé
    Bonjour tous,

    Bon finalement j'ai suivi le conseil de jreaux62 a savoir j'enregistre ma photo uploadée dans un fichier1 puis si une deuxieme photo est uploadée pour remplacée la premiere, elle s'enregistre dans un fichier différent fichier2 et fichier 1 est détruit, si une 3eme tentavive est faite on inscrit dans fichier1 et on detruit fichier2 etc etc....

    Merci a tous de votre aide!!

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

Discussions similaires

  1. [Upload] upload de photo
    Par scastong dans le forum Langage
    Réponses: 2
    Dernier message: 01/11/2006, 21h53
  2. [Upload] Problème d'upload de photos
    Par Paradise01 dans le forum Langage
    Réponses: 5
    Dernier message: 15/08/2006, 02h36
  3. [Upload] upload de photo PHP
    Par abdel_13 dans le forum Langage
    Réponses: 5
    Dernier message: 19/06/2006, 15h25
  4. [Upload] Upload de photo et modifier le nom
    Par HwRZxLc4 dans le forum Langage
    Réponses: 14
    Dernier message: 08/05/2006, 22h24
  5. [Upload] Uploadé une photo?
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 21/03/2006, 16h33

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