Re: [PHP] Cannot show reuploaded image file on page unless manualrefresh
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, ); 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 [EMAIL PROTECTED] 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
Re: [PHP] Cannot show reuploaded image file on page unless manualrefresh
On Mon, 20 Jan 2003, Phil Powell 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);// Date in the past header(Last-Modified: . gmdate(D, d M Y H:i:s) . GMT); header(Cache-Control: no-store, no-cache, must-revalidate); // HTTP/1.1 header(Cache-Control: post-check=0, pre-check=0, false); header(Pragma: no-cache); // HTTP/1.0 view.php will never be cached ... 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! but you failed to address the caching of images in any of your code or setup. The cache headers on the view.php script have /no/ affect on anything but view.php. You're fighting the communication betweneen the browser and the web server, so configure one or the other to play nicely. - Disable caching in your browser. - Configure your web server to include cache-control expires headers on all pertinent image requests. (For example, see mod_expires for Apache: http://httpd.apache.org/docs/mod/mod_expires.html) In lieu of those, change the way you handle uploads. Instead of using the exact filename of the uploaded file, rename the file slightly, to include a timestamp or some other changing identifier each time the file is uploaded. For exampple, when myImage.jpg is uploaded, save it as myImage-001.jpg the first time, myImage-002.jpg the second time. g.luck, ~Chris -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php