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

PHP & Base de données Discussion :

Mise à jour d'une image bloquée par le cache du navigateur


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2010
    Messages : 33
    Par défaut Mise à jour d'une image bloquée par le cache du navigateur
    Bonjour,

    J'ai mis en place la possibilité de modifier l'image d'un utilisateur via une requête AJAX. Ceci fonctionne bien si ce n'est que la nouvelle image n'est pas afficher avant qu'on aille manuellement effacer le cache du navigateur.

    Comment puis-je contourner le problème ? Mes recherches m'ont emmené à évaluer la possibilité d'utiliser un timestamp sur mes ressources, mais je ne sais pas comment faire cela.

    Auriez-vous une solution ?

    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Par défaut
    Bonjour,

    il suffit de changer le nom du fichier. tu peux le renommer en fonction du timestamp de téléchargement.
    Par exemple le fichier suivant photo.jpg deviendra photo_1603448358.jpg . Ensuite pour faire lien entre le fichier de base(sans timestamp) et le fichier versionné tu peux stocker le lien entre ces 2 fichiers dans un fichier json comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"photo.jpg":"photo_1603448358.jpg"}
    Pour récupérer le fichier versionné à afficher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $map = json_decode( file_get_contents('manifest.json') ); //où manifest.json représente le fichier json faisant le lien entre le fichier de base et son pendant versionné
    echo $map["photo.jpg"]; // photo_1603448358.jpg

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2010
    Messages : 33
    Par défaut Merci
    Hello,

    La réponse est simple il est vrai. Mais n'y a-t-il pas une possibilité de garder le nom de fichier, car toute la plateforme est basée sur le nom de l'utilisateur pour les photos (nom_utilisateur.jpg), du coup, je devrais changer la structure de la base de données, ses inscriptions et ses appels...

    Mais ça sera peut-être plus simple qu'un changement du cache.

    Merci en tout cas

  4. #4
    Membre éprouvé
    Homme Profil pro
    Webmaster - Développeur/intégrateur web
    Inscrit en
    Septembre 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Webmaster - Développeur/intégrateur web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 210
    Par défaut
    J'ai trouvé ces 2 méthodes en faisant une recherche Google sur les mots clés "html remove image from cache" :

    - https://developer.mozilla.org/fr/doc...I/Cache/delete
    - https://developer.mozilla.org/en-US/...evokeObjectURL

    De ce que j'ai compris, ce sont des méthodes plus ou moins en WorkInProgress... le résultat n'est pas forcément garantis mais vous pouvez toujours tester sur votre environnement de développement.

    Il faudra bien pousser les tests sur différents navigateurs et différents supports.

    Voilà j'ai pas cherché longtemps.. il y a peut être moyen de trouver mieux.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2010
    Messages : 33
    Par défaut Résolu
    Bonjour,

    Merci à toi Soundboy39. Finalement aucune solution n'a vraiment fonctionné et j'ai fini par utiliser la méthode traditionnelle, à savoir renommer chaque image du genre "nom_utilisateur"+n_alea. De ce fait, ça fait une entrée supplémentaire dans la BDD, mais les pages ont pu être corrigées en conséquences.

    Meilleures salutations

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

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

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Simplement ajouter un paramètre à l'image ne suffisait pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="image.jpg?123456789" />
    Si ca ne suffit pas , il est normalement possible avec Apache et un htaccess de forcer l'envoi d'un hash différent quand une image change grâce aux etags.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [MySQL] Mise à jour d'une image
    Par Romuald632 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/04/2011, 21h00
  2. Erreur au niveau de la mise à jour d'une table Oracle par code VB
    Par lilas_violet dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 15/07/2010, 12h26
  3. [MySQL] Syntaxe de mise à jour d'une image
    Par yamino dans le forum Bases de données
    Réponses: 1
    Dernier message: 15/07/2007, 15h42
  4. Mise à jour d'une image
    Par ratakses dans le forum 2D
    Réponses: 2
    Dernier message: 03/09/2006, 15h45
  5. Mise à jour d'une BD simultanément par ACCESS et ArcGIS
    Par Pipo Crusoe dans le forum Access
    Réponses: 1
    Dernier message: 14/12/2005, 11h40

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