2008-11-30 16 views
0

J'ai une page ASPX sur laquelle je télécharge une image sur le serveur pour un événement de clic sur un bouton du serveur. Dans ma page, il montrera l'image disponible si elle existe. Lorsque je télécharge une image, elle remplace l'ancienne par la nouvelle. Maintenant, après le téléchargement, la même image est affichée. Comment peut-on s'attaquer à cela? J'ai utilisé la fonction javascript window.location.reload() pour actualiser, mais cela ne fonctionne pas. Il affiche à nouveau la page.ASP.NET Actualiser la page après le chargement de l'image

C'est mon code

Do UploadImage(studentId,mode); // Function to upload image 
    StringBuilder sbc = new StringBuilder(); 

    sbc.Append("<script language='javascript'>"); 
    sbc.Append("alert('Upload process completed successfully!');"); 
    sbc.Append("window.location.reload()"); 
    sbc.Append("</script>"); 
    HttpContext.Current.Response.Write(sbc); 

Répondre

2

Il est en cours de mise en mémoire cache dans le navigateur. Pour surmonter cela - modifier l'URL de l'image. Cela peut être fait en incluant un horodatage, un numéro de version ou un guid dans le nom du fichier image.

2

Votre navigateur est mise en cache probablement l'image. Désactivez la mise en cache sur l'image ou définissez des réponses de mise en cache appropriées.

0

Vous pouvez recharger à partir du côté serveur

Response.Redirect(Request.URL) 
+0

Je reçois Impossible de rediriger après que les en-têtes HTTP ont été envoyés Message – Shyju

+0

Vous pouvez vous référer à cette discussion - LeJeune

0

Un outil utile pour le déboguer est fiddler. Comme d'autres l'ont déjà suggéré, il est probable que le navigateur met en cache l'ancienne version de l'image. Si vous utilisez IIS, vous pouvez modifier la stratégie de cache afin que le navigateur recherche toujours une version plus récente de l'image.