2009-05-04 124 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" %> 

通過緩存網頁,您避免在後續請求重新創建信息,所以請記住,這可能會產生不利的頁面加載時間爲緩存影響將被禁用。

相關問題