2012-04-09 60 views
0

ASP.NET缓存图像从问题目录C(如何禁用它?) .IE浏览器加载旧形象:\的Documents and Settings \本地设置\ Temporary Internet Files文件如何禁用单个图像(单个页面)上的缓存?

protected void Page_Load(object sender, EventArgs e) 
    { 
     MembershipUser user = Membership.GetUser(); 
     imCropped.ImageUrl = (File.Exists(Server.MapPath("..") + @"\Users\" + user.ProviderUserKey.ToString() + @"\" + user.ProviderUserKey.ToString() + ".gif"))? "~/Users/" + user.ProviderUserKey.ToString() + "/" + user.ProviderUserKey.ToString() + ".gif" : "~/Images/thumb.gif"; 
} 

protected void ButtonJcrop_Click(object sender, EventArgs e) 
    { 

     ... 

     String mapPath = @"\Users\" + user.ProviderUserKey.ToString() + @"\" + user.ProviderUserKey.ToString() + ".gif"; 
     bmpCropped.Save(Server.MapPath("..") + mapPath); 
     imCropped.ImageUrl = Request.ApplicationPath + mapPath; 
     ... 
} 
+0

请重新说明问题。 – hofnarwillie 2012-04-09 07:26:01

+0

句子让用户更容易理解问题,谢谢。 – 2012-04-09 07:48:37

回答

3

可以添加到图像网址aquery串PARAM只是一个随机数:

<img src="http://www.walaa.co.il/t.jpg?c=2342342"/> 

它可像Datetime.Ticks或别的东西。

ImageUrl = (File.Exists(string.Format("{0}\\Users\\{1}\\{1}.gif?c={2}", Server.MapPath(".."), user.ProviderUserKey.ToString(), DateTime.Now.Ticks))) ? string.Format("~/Users/{0}/{0}.gif?c={1}" , user.ProviderUserKey.ToString(), DateTime.Now.Ticks) : "~/Images/thumb.gif"; 
+0

这工作,但不是一个最佳的解决方案。如果您的图像可能受益于缓存,则可以通过散列文件来创建该数字。 – linkerro 2012-04-09 07:29:20

+0

不,no image'name常量 – PMD 2012-04-09 07:30:10

+0

@linkerro我不认为散列IMG会带来更好的性能。顺便说一句 - 我可以将它添加到JS中 - 而不是在SERVER端。但我更喜欢在生成IMG的同时发送datetime.ticks。 – 2012-04-09 07:30:59

相关问题