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 fichiers image


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 fichiers image
    Bonjour a tous ,

    Finalement mon problème que je croyais résolu ne l'est pas!! je remet donc un post.

    Voici le problème:

    Je veux uploader a partir d'un formulaire une photo et l'afficher pour avoir un apercu. Le soucis c'est que si je veux changer de photo , le programme prend bien en compte la nouvelle photo mais affiche la precedente, la nouvelle photo ne s'affiche que si je fais un rafraichissement manuel.

    voici le script qui traite ma photo une fois que j'ai validé le formulaire:

    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
     
    <?php
    //
    //ouverture session et initialisation
    //
    session_start();
    $_SESSION['text']=NULL; //mise à NULL du message d'erreur poid
    $_SESSION['text2']=NULL; //mise à NULL du message d'erreur format
    $_SESSION['picp']=$_FILES['picp'];
    $_SESSION['picp']['type']=$_FILES['picp']['type'];
    //
    //Charge photo si présence d'un fichier.
    //
    if ($_FILES['picp']['name']!=""){
    //
    //Récupération de l'image
    //
    $img=imagecreatefromjpeg($_FILES['picp']['tmp_name']);
    //
    // Test du format du fichier
    //
    	if (strpos($_FILES['picp']['type'],"jpeg")){// voir pb accent de "demandé" + relecture des images
    //
    // Test du poid de l'image
    //
    	$size=$_FILES['picp']['size'];
    		if ($size<=2097152){
    //
    //si poid correct alors on enregistre dans le dossier
    //Récupération taille de l'image 
    //
    		$taille=getimagesize($_FILES['picp']['tmp_name']);
    		$width=$taille[0];
    		$height=$taille[1];
    //
    //création de l'image de destination à partir de l'image originale
    //
    		$img_dest=imagecreatetruecolor(60,75);
    		$copy=imagecopyresampled($img_dest,$img,0,0,0,0,75,60,$width,$height);
    //
    //enregistrement de l'image (fichiers temporaires)
    //
    				if (file_exists('../photos/picp_temp1_'.$_SESSION['id_membre'].'.jpg')){
    				unlink('../photos/picp_temp1_'.$_SESSION['id_membre'].'.jpg');
    				imagejpeg($img_dest,'../photos/picp_temp2_'.$_SESSION['id_membre'].'.jpg');
    				}
    				else if (file_exists('../photos/picp_temp2_'.$_SESSION['id_membre'].'.jpg')){
    				unlink('../photos/picp_temp2_'.$_SESSION['id_membre'].'.jpg');
    				imagejpeg($img_dest,'../photos/picp_temp1_'.$_SESSION['id_membre'].'.jpg');
    				}
    				else
    				imagejpeg($img_dest,'../photos/picp_temp1_'.$_SESSION['id_membre'].'.jpg');
    //
    //destruction de l'image en mémoire
    //
    		imagedestroy($img_dest);
    		}
    //
    // si poid incorrect message d'erreur
    //
    		else
    		$_SESSION['text']="Merci de mettre une photo de 2Mo maximum.";
     
    	}
    //
    // si format incorrect message d'erreur
    //
    	else
    	$_SESSION['text2']="Merci de mettre une photo avec le format demandé.";
     
    }
    //
    // si format incorrect message d'erreur
    //
    else
    $_SESSION['text2']="Merci de mettre une photo avec le format demandé.";
    //
    //Dans tous les cas, redirection vers la page inscription
    //
    header("location:http://localhost/feesik/inscription_e2.php");
    ?>
    J'utilise 2 fichiers pour enregistrer temporairement les photos en effacant la chaque fois le fichier temporaire precedent mais ca ne fonctionne pas.

    voila ce que ca donne dans le deroulement:

    upload image 1 -> fichier 1 dans image temp 1 -> affichage image 1

    si je change de photo :

    upload image 2 -> image 2 dans image temp 2 -> affichage image 2

    si je change a nouveau de photo (3ème image differente):

    image temp 1 est detruit
    upload image 3 -> image 3 dans image temp 1 (recrée) -> affichage image 1

    si je change a nouveau de photo (4ème image differente):

    image temp 2 est detruit
    upload image 4 -> image 4 dans image temp 2 (recrée) -> affichage image 2

    etc...etc...

    Bref seule les deux premiere image s'affiche .. pas les suivantes.

    Si je fais un refresh manuel ca fonctionne.

    Avez vous une idée?

    Merci d'avance

  2. #2
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    c'est un problème de cache
    pour forcer l'affichage de l'image, tu peux rajouter ça au moment de l'affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="photos/picp_temp1_<?php echo $id_membre?>.jpg?<?php echo mt_rand();?>" alt=""/>

  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 excellent!!!
    Mille merci!!!!

    ça marche impeccable!!

    mais peux tu m'expliquer le rôle du "? + nombre" a la fin du fichier image?

    merci merci.

  4. #4
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    Citation Envoyé par salsabouge Voir le message
    mais peux tu m'expliquer le rôle du "? + nombre" a la fin du fichier image?
    le nombre change a chaque appel de la page donc le navigateur croit que c'est une nouvelle image et il n'utilise pas l'image en cache

  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 ok merci
    merci pour ton aide

    a bientot


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

Discussions similaires

  1. [MySQL] upload de fichier image ne fonctionne pas
    Par drogba72 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/08/2011, 16h13
  2. upload un fichier image d'un repertoire à un autre
    Par falifalibe2 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 06/11/2009, 11h50
  3. [Upload] Upload d'un fichier image
    Par Rothul dans le forum Langage
    Réponses: 2
    Dernier message: 04/12/2007, 14h03
  4. [Upload] upload de fichier images
    Par omlip dans le forum Langage
    Réponses: 2
    Dernier message: 03/01/2006, 23h13
  5. [Upload] probleme de récupération de fichier image
    Par BernardT dans le forum Langage
    Réponses: 2
    Dernier message: 15/11/2005, 01h12

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