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

WebDev Discussion :

[WebDev17] Actualiser champ image


Sujet :

WebDev

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Par défaut [WebDev17] Actualiser champ image
    Bonjour,

    J'ai un ptit soucis avec webdev.
    Je dois développer une appli web pour ma boite.

    Cette appli doit proposer sur un formulaire l’hébergement d'une photo, ainsi que son affichage en instantané.

    J'explique ce que j'ai fait :

    - Un champ upload qui premet de sélectionner ladite image.
    Celle ci est en suite envoyée sur le serveur, et mise dans un fichier "temp.jpg". (j'ai décidé de toujours utiliser le même fichier)

    - Un champ image qui affiche le contenu de temp.jpg après l'upload.

    Seulement voila, je souhaite rajouter un bouton supprimer qui permet de supprimer l'image et d'en envoyer une autre (en cas d'erreur). Ce bouton supprime donc le contenu du champ image et upload.

    Mais lorsque j'upload une autre image, et que je la réaffecte (IMG_Photo = Fichier), c'est l'image précédente qui reste affichée, et ce même si le fichier sur le serveur à changé.

    Et ca va plus loin, même en actualisant la page, j'ai encore l'image précédent affichée, je deviens fou

    Sauriez vous d'ou peut venir ce problème?

  2. #2
    Membre très actif Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Par défaut
    Bonjour,
    Avant d'afficher la seconde image, vide ton champ image :


  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Par défaut
    Merci de ta reponse, mais j'ai déja essayé ca, ca veut pas ;(
    J'ai bien réussi a trouver une astuce, mais elle ne fait que contourner le problème, je pense que comme l'image que j'affiche ne change pas de nom, le navigateur ne la re-télécharge pas et utilise celle du cache. Ca pourrait être ca d'après toi?

    EDIT : Après vérification on dirais bien que c'est l'image du cache qui est affichée et qui elle, ne varie pas vu que le nom reste le même.

    Du coup je me pose la question de savoir s'il est possible de supprimer cette image du cache après son affichage

  4. #4
    Membre très actif Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Par défaut
    Je pense qu'il faut alors supprimer le fichier "temp.jpg"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fSupprime("\Répertoire\temp.jpg")

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Par défaut
    Le problème, c'est que la commande fSupprime() va enlever l'image temp.jpg du répertoire web, mais pas du cache.

    L'astuce que j'ai trouvé c'est de changer le nom de l'image à chaque suppression (temp1, temp2, temp3, ...) mais le problème reste le même si l'on actualise la page, ce sont les même images qui réapparaissent, d'ou l'idée de vider le cache, mais je ne sais pas si c'est possible.

  6. #6
    Membre très actif Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Par défaut
    sans le code il est difficile de voir le problème. Peut-être qu'il faut fermer le fichier avant modification ou suppression ? Poster le code svp.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Par défaut
    Voici le code du bouton upload
    ________________________________________________________
    CODE NAVIGATEUR
    ________________________________________________________

    // Si le champ contient un fichier : lance l'envoi du fichier

    SI MoiMême..Occurrence > 0 ALORS
    Vérification extension

    extension_fichier est une chaîne;
    extension_fichier = ExtraitChaîne(UPL_Upload, 0, ".", DepuisFin);
    extension_fichier = Minuscule(extension_fichier)
    SI extension_fichier = "jpg" OU extension_fichier = "jpeg" OU extension_fichier = "png" OU extension_fichier = "gif" ALORS

    Mise A jour des libellés
    SAI_Photo = MoiMême

    ET lance l'upload
    UploadLance(MoiMême);
    SINON
    Info("Type de fichier non supporté");
    FIN
    FIN

    ________________________________________________________
    CODE SERVER
    ________________________________________________________

    IMG_Photo = "trap.jpg"

    SI fTaille(MoiMême) > 5000000 ALORS
    // le fichier est trop volumineux
    Info ("Le fichier est trop volumineux et ne sera pas sauvegardé")
    IMG_Ok..Visible = Faux
    SAI_Photo = ""
    IMG_Photo..Image = "trap.jpg"

    SINON
    // L'indice sert en cas d'erreur au niveau de la sélection de la photo
    Fichier est une chaîne = "temp.jpg"
    Rep est une chaîne = fWebDir()

    SI PAS fRépertoireExiste(Rep) ALORS
    fRepCrée(Rep)
    FIN

    // Copie de la photo
    UploadCopieFichier(UPL_Upload,Rep,Fichier)
    IMG_Photo = Fichier
    IMG_Ok..Visible = Vrai
    UPL_Upload..Visible = Faux

    FIN
    Comme je l'ai dit, l'image ne change pas de nom si on actualise la page par exemple, et lorsqu'on essaie d'upload une nouvelle image, le traitement s'effectue bien (la nouvelle image est stockée sur le serveur) mais l'image affichée elle ne change pas, et ca pour mes utilisateurs, ca le fait vraiment pas...

  8. #8
    Membre très actif Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Par défaut
    Bonjour, essayer la modification ci-dessous :
    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
    CODE NAVIGATEUR
    ________________________________________________________
    
    // Si le champ contient un fichier : lance l'envoi du fichier
    
    SI MoiMême..Occurrence > 0 ALORS
    Vérification extension
    
    extension_fichier est une chaîne;
    extension_fichier = ExtraitChaîne(UPL_Upload, 0, ".", DepuisFin);
    extension_fichier = Minuscule(extension_fichier)
    SI extension_fichier = "jpg" OU extension_fichier = "jpeg" OU extension_fichier = "png" OU extension_fichier = "gif" ALORS
    
    Mise A jour des libellés
    SAI_Photo = MoiMême
    
    ET lance l'upload
    UploadLance(MoiMême);
    SINON
    Info("Type de fichier non supporté");
    FIN
    FIN
    
    ________________________________________________________
    CODE SERVER
    ________________________________________________________
    
    IMG_Photo = "trap.jpg"
    
    SI fTaille(MoiMême) > 5000000 ALORS
    // le fichier est trop volumineux
    Info ("Le fichier est trop volumineux et ne sera pas sauvegardé") 
    IMG_Ok..Visible = Faux
    SAI_Photo = ""
    IMG_Photo..Image = "trap.jpg"
    
    SINON
    // L'indice sert en cas d'erreur au niveau de la sélection de la photo
    Fichier est une chaîne = "temp.jpg"
    Rep est une chaîne = fWebDir()
    
    SI PAS fRépertoireExiste(Rep) ALORS
    fRepCrée(Rep)
    FIN
    
    // Copie de la photo
    UploadCopieFichier(UPL_Upload,Rep,Fichier)
    IMG_Photo..Image = Fichier
    IMG_Ok..Visible = Vrai
    UPL_Upload..Visible = Faux
    
    FIN

  9. #9
    Nouveau membre du Club
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Par défaut
    Bonjour,

    Cela ne marche pas non plus, l'image affichée est la même après actualisation, je cherche actuellement comment vider le cache de IE sous webdev, mais je ne suis pas sur que ce soit possible =s

  10. #10
    Membre très actif Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Par défaut
    Regarde du coté de la fonction "dFinDessin" ici

  11. #11
    Nouveau membre du Club
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Par défaut
    Ca ne marche toujours pas, pour les même raisons je pense, l'image en mémoire vive est supprimée, mais pas celle du cache, et on reviens donc au même problème. Je commence à me demander si c'est possible

    Il faudrait soit supprimer le cache, soit remplacer dans le cache l'image

    EDIT : c'est bon j'ai résolu mon problème, il suffit de rajouter un nombre aléatoire (sysdate(), random(), ...) au nom du fichier, qui s'appelle donc temp2515454.jpg, et qui change à chaque rafraichissement, permettant au navigateur de la retélécharger

    Merci bien

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

Discussions similaires

  1. [WB19] Les champs images ne s'actualisent pas
    Par Belwen dans le forum WebDev
    Réponses: 3
    Dernier message: 14/05/2014, 22h22
  2. [WD14] Actualisation d'une fenêtre avec un champ image
    Par Raptor92 dans le forum WinDev
    Réponses: 1
    Dernier message: 01/11/2009, 17h06
  3. [C#] Récup champ IMAGE SQLServer avec un DataSet Typé
    Par SoaB dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/07/2005, 14h53
  4. Champ Image sous oracle
    Par smazaudi dans le forum Bases de données
    Réponses: 1
    Dernier message: 21/06/2005, 08h56
  5. [FORMS] Champ image non basé
    Par macharius dans le forum Forms
    Réponses: 5
    Dernier message: 08/03/2005, 17h04

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