Re: Cannot show reuploaded image file on page unless manual refresh

From: Date: Mon, 20 Jan 2003 22:03:29 +0000
Subject: Re: Cannot show reuploaded image file on page unless manual refresh
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-132297@lists.php.net to get a copy of this message
--- Phil Powell <soazine@erols.com> wrote: > I am using the following header() functions to force > view.php to not cache: > > header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); > header("Last-Modified: " . gmdate("D, d M Y H:i:s") . > " GMT"); > header("Cache-Control: no-store, no-cache, > must-revalidate"); > header("Cache-Control: post-check=0, pre-check=0", > false); > header("Pragma: no-cache"); :-) I think you killed it. > However, when a user reuploads a file in manage.php, it > does a form post onto manage.php and reuploads the file > (which I verified works). However, when redirected via > header() to view.php, they still see their OLD image > file, NOT the new one! Unless I manually refresh the > page, they never see it, until they manually refresh the > page, then the new image file appears! Right. I think you are forgetting that the image is not really part of the PHP resource. Meaning, this is the series of events for a PHP script that refernces a single image called bar.jpg using the <img> tag: 1. HTTP request sent for foo.php (Web client -> Web server) 2. HTTP response sent that includes the output of foo.php (Web server -> Web client) 3. Web client (browser) notices <img> tag referenced in the HTML. 4. HTTP request sent for bar.jpg (Web client -> Web server) 5. HTTP response sent that includes bar.jpg So, the headers that you are setting only matter for the resource returned in step 2. Meaning, the HTML output of foo.php is not cached. The image, since it is returned by the Web server and not your PHP script, is cached. Chris

« previous php.general (#132297) next »