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

Bibliothèques et frameworks PHP Discussion :

[Image]comment bloquer le cache sur les images?


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 22
    Points : 12
    Points
    12
    Par défaut [Image]comment bloquer le cache sur les images?
    bonjour

    j'ai une page d'upload d'image
    lorsque j'upload les images le script copy les image dans un repertoir en
    renoment les images 1.jpg,2.jpg,3.jpg..
    et ensuite les affiche dans la meme page
    la j ai le choix d effacer les image
    lorsque j efface une image le script renome toute les images
    exemple:
    si j efface l'image 2.jpg le script renome 3.jpg en 2.jpg
    le probleme c est que les images restent dans le cache du navigateur
    et c est l'ancienne image 2.jpg qui est afficher tant que je ne fait pas <ctrl> + F5


    pourtant en debut de page j'ai desacliver la mise en cache

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
     header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
     header("Cache-Control: no-store, no-cache, must-revalidate"); 
     header("Cache-Control: post-check=0, pre-check=0", false); 
     header("Pragma: no-cache");
    pouvez vous m'aider???

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Tu pourrais (attention, solution violente) utiliser la méthode du paramètre aléatoire. Ajoute "?" et une chaîne aléatoire au nom de fichier image, tu seras assuré que tous tes utilisateurs téléchargeront l'image à chaque fois.
    Inconvénient : tu gaspilles une montagne de bande passante...

  3. #3
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    pourtant en debut de page j'ai desacliver la mise en cache
    Les entêtes HTTP sont valables par fichier, pas par page. Ainsi les entêtes que tu envois depuis ta page ne concerneront absolument pas tes images.

    Une solution, très similaire à celle de Kirkis mais pas "barbare" et qui permettra quand même l'utilisation du cache du navigateur : ajouter la date de dernière modification de l'image dans l'URL.
    Cela pourrait donner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $image = 'monimage1.jpg';
    echo '<img src="', $image, '?', filemtime( $image ), '" />';
    Ceci combiné à l'envoi d'entêtes expires assez longs (une semaine par exemple), devrait te fournir un excellent cache, très efficace sans pour autant poser le genre de soucis que tu as actuellement.
    Google is watching you !

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    merci pour ta reponse

    je peux pas utiliser cette methode car le nom des image et baser sur un enregistrement dans ma base de donner

    en gros c'est une interface utillisateur
    en cliquant sur la fiche de l'utillisateur on peux uploder des photos
    qui seront lier à sont id

    en pratique lorsuqe je clique sur l'id 1
    je envois vers ma page d'upload le parametre 1 en get

    lorsque je rajoute une photo
    un repertoir et un sourepertoir "1" est creer

    le repertoire "1" contient le sous repertoir "1" et les photos uploder
    les photos uploader sont numeroter 1.jpg,2.jpg,3.jpg,...
    dans le sous repertoir "1" je cree les miniatures 1.jpg,2.jpg,3.jpg,...

    tout marche à la perfection sauf au moment ou je fait un delette d'une photo les photos sont renomer et la si je fait pas un delette manuel de la cache l anciennne photo est afficher.

    y a t il une erreur dans mon code?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
     header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
     header("Cache-Control: no-store, no-cache, must-revalidate"); 
     header("Cache-Control: post-check=0, pre-check=0", false); 
     header("Pragma: no-cache");
    ou es ce que les browseur garde d'office les images en cache???[/code]

  5. #5
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    Il dit qu'il voit pas le rapport...

    ce n'est pas parce que le nom est stocké en base de données que tu ne peux pas modifier le tag HTML... <img src="1/1/2.jpg?123456464564" /> ça marche très bien...


    Et pour tes entêtes, je t'ai déjà répondu : tu les envois vraissemblablement de ta page HTML, qui n'a absolument rien à voir.
    Google is watching you !

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    merci pour vos reponse
    je test et je vous dis ce que ca vas donner

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Kioob
    Il dit qu'il voit pas le rapport...

    ce n'est pas parce que le nom est stocké en base de données que tu ne peux pas modifier le tag HTML... <img src="1/1/2.jpg?123456464564" /> ça marche très bien...


    Et pour tes entêtes, je t'ai déjà répondu : tu les envois vraissemblablement de ta page HTML, qui n'a absolument rien à voir.
    merci kioob

    j' ai compris ta methode est grace à toi j'ai reussi à le faire

    mais j'ai du modifier un peu en faite dans mon cas j'uppload jusqu'à 10 images en meme temps donc les dix fichier on la meme dates

    ces fichier (photo) sont afficher juste dans l'interface admin et ne font que quelque byte
    donc j'ai modifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php 
    $image = 'monimage1.jpg'; 
    echo '<img src="', $image, '?', filemtime( $image ), '" />';
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php 
    $image = 'monimage1.jpg'; 
    echo '<img src="', $image, '?', echo md5(time()),'" />';
    et la ca marche sans probleme
    merci pour l'aide

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

Discussions similaires

  1. [WD-2007] Comment alléger fichier contenant des effets sur les images
    Par otarie10 dans le forum Word
    Réponses: 11
    Dernier message: 18/09/2010, 12h09
  2. souris perso sur les images
    Par kevinf dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/11/2005, 14h57
  3. [Debutante][image]questions sur les images
    Par misstinkiete dans le forum 2D
    Réponses: 2
    Dernier message: 25/07/2005, 21h23
  4. Comment mettre un label sur une image
    Par dug dans le forum MFC
    Réponses: 3
    Dernier message: 07/04/2004, 10h40

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