2013-06-18 72 views
1

讓我來解釋一下這個需求。我有一個頁面,用戶可以上傳他的個人資料圖片,如果他需要改變它。在提交該表格時,我想讓他看看他的個人資料頁面。如何更新,強制忽略緩存的數據

但問題是這樣的,他的兩個老輪廓影像,其被上傳的同名&相同的擴展名(這是必需的存儲&他的新輪廓影像,我不能改變別人這個我不會必須有問題,如果我有改變了新圖像的名稱)

因此,當他被重定向到他的個人資料頁面時,除非用戶點擊Ctrl + F5,否則仍會顯示舊圖像。那麼有什麼方法可以解決這個問題嗎?

P.S:我知道img src方法的abt隨機查詢字符串。但我不想要,因爲它會始終從服務器獲取圖像。我只想讓瀏覽器不要只在這個特定的請求上緩存圖像(例如,在圖像上傳後重定向的函數中設置狀態頭)。我正在使用Codeigniter,PHP

回答

0

嘗試$this->output->set_header();的圖像。

From the docs:你手動設置服務器頭,其輸出類會爲你輸出最終呈現的顯示時發送

許可證。

$this->output->set_header('Last-Modified: '.gmdate('D, d M Y H:i:s', $last_update).' GMT'); 
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate"); 
$this->output->set_header("Cache-Control: post-check=0, pre-check=0"); 
+0

我已經有這樣的代碼在我的構造 '$這個 - > set_header( '過期:星期六,1997年7月26日05:00:00 GMT');'' $這個 - > set_header('Cache-Control:no-cache,no-store,must-revalidate,max-age = 0');'$ this-> set_header('Cache-Control:post-check = 0,pre-check = 0',FALSE);' '$ this-> set_header('Pragma:no-cache');' –

+0

您需要發送這些圖片的標題,而不是您的頁面。從瀏覽器中請求圖像,並且圖像的「緩存控制」與該頁面的任何一個沒有關係。 – ferdynator

+0

我還沒有使用$ this-> output,因爲這段代碼在我的MY_Output類:) –