NYCPHP Meetup

NYPHP.org

[PHP] Cannot show reuploaded image file on page unless manual refresh

Jim Lucas phplist at zonedzero.net
Mon Jan 20 19:07:59 EST 2003


I would add the modification time of the file in question with

filetime($filename);

that way you will be sure to get a unique argurment.

Jim

----- Original Message -----
From: <ed at home.homes2see.com>
To: "Chris Shiflett" <shiflett at php.net>
Cc: "Phil Powell" <soazine at erols.com>; <php-general at lists.php.net>;
<talk at nyphp.org>
Sent: Monday, January 20, 2003 10:48 AM
Subject: Re: [PHP] Cannot show reuploaded image file on page unless manual
refresh


>
>  Aha! Something I can chime in on. I happened across the same scenario a
> few months back. The list helped me then so I'll give back.
>
>  Call the image using a random identifier.
>
> $rand = rand(1000, 9999);
>
> echo "<img src="http://someurl.com/image.jpg?$rand";
>
> Since the browser will more than likely not have the image file identified
> by the random number it must request it again from the server. Works
> great where I need it!
>
> Ed
>
> On Mon, 20 Jan 2003, Chris Shiflett wrote:
>
> > --- Phil Powell <soazine at 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
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>





More information about the talk mailing list