2011-07-27 50 views
0

我有一個上傳圖片的形式。當用戶改變圖片時,我會覆蓋他已經擁有的圖片。圖片總是帶有用戶的名字。刷新頁面時圖像內容更改,但圖像名稱不,php

我用笨的設置是:

$config['overwrite']=TRUE; 
$config['file_name']=$this->session->userdata('username'); 

他上傳我重新加載整個頁面

$this->load->view('bilet/uploadform'); 

我必須刷新頁面,以便使新的PIC出現在照片後, 爲什麼是這樣 ?

爲什麼它不按我期望的方式工作? (我沒有使用AJAX,但我很快就會)

+0

事實上,因爲你不使用AJAX。 PHP的服務器端,一旦它提供了一個圖像的HTML,你需要刷新頁面的PHP提交一個新的用戶。什麼問題,順便說一句? –

回答

1

如果您將新上傳的圖像名稱保存爲舊圖像名稱,這是一個緩存問題,這就是爲什麼您必須刷新,您可以將隨機生成的數字添加到圖像名稱或src屬性添加一個隨機數,像這樣的例子:

http://www.mywebsite.com/image.png?number=123123 

http://www.mywebsite.com/image.png?number=6546587 

財產以後這樣將防止所謂的緩存圖片。

希望這會有所幫助。

0

是的,它的共同點是,如果你不使用一些Ajax魔法,你必須刷新頁面。

以CI方式進行刷新。

加載URL helper

然後

redirect('/path/to/controller', 'refresh'); 
+0

您的回答引發了另一個問題:CI是否自動緩存頁面?如果圖片具有相同的名稱但內容不同,php將無法判斷該頁面是否有所不同,並且會向我發送舊版本的視圖。如果我使用像你說的Krish那樣的重定向,即使沒有「刷新」選項,它也能工作(我猜是因爲你重定向到一個控制器然後加載視圖)。 – alin