2009-05-04 128 views
0

A.)当我使用代码删除让我说Image123.jpg在文件夹Pics和我上传另一个图像并重命名该图像也Image123.jpg并将其放入文件夹一些图片一些导致新图像得到显示,但它使用我删除的图像的尺寸。在这里使用中继器来显示图像.................用文件夹中的相同名称替换图像

B.)当我只是复制并过去说Image99.jpg到我的Pics文件夹中所有准备好包含Image99.jpg然后当然它改变了原来的一个。所以由于某种原因,它必须被缓存,因为当我运行我的页面时,它仍然显示第一个图像。用在这里正常的图像控制................

为什么做一个 ........怎么能我绕过这个.....问题A它对我来说更重要,因为当用户点击“更改标识”按钮时,我需要更改图像名称。

+0

有些代码会有所帮助。我想看看你的中继器控制器和处理文件操作的代码 – roosteronacid 2009-05-04 16:39:53

回答

3

浏览器会缓存图像,因此如果您替换图像,则必须更改请求图像才能看到新图像的网址。

您可以通过这样做:

  1. 改变影像本身的名称。

  2. 将querystring添加到您更改的url。

如果您向该网址添加版本号,例如images/Image123.jpg?version=42,并且在替换图像时增加版本号,浏览器将根据完整的url(而不仅仅是文件名)根据浏览器缓存文件从服务器请求新图像。

+0

我如何在代码中做到这一点 - 添加的版本号。 – Etienne 2009-05-04 17:12:53

+0

这取决于你的代码是什么样的......你如何在第一个地方设置图像的URL? – Guffa 2009-05-04 20:13:53

1

如果确实是缓存问题,则可以执行以下操作。

编程:

Response.Cache.SetCacheability(HttpCacheability.NoCache); 

以声明:

<%@ OutputCache Location="None" VaryByParam="None" %> 

通过缓存网页,您避免在后续请求重新创建信息,所以请记住,这可能会产生不利的页面加载时间为缓存影响将被禁用。

相关问题