User Name Password Register
DaniWeb IT Discussion Community
All
What is DaniWeb IT Discussion Community?
You're currently browsing the PHP section within the Web Development category of DaniWeb, a massive community of 427,486 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 3,418 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our PHP advertiser: Lunarpages PHP Web Hosting
Views: 4150 | Replies: 8
Reply
Join Date: Sep 2006
Posts: 83
Reputation: rinoa04 is on a distinguished road 
Rep Power: 3
Solved Threads: 4
rinoa04's Avatar
rinoa04 rinoa04 is offline Offline
Junior Poster in Training

Preview Upload Image Problem

  #1  
Sep 16th, 2006
I always have a doubt that I couldn't solve that is the problem of previewing an upload image properly.

I have wrote a php coding to upload and delete an image. In the page, user is able to view the image they have uploaded once they click the upload button. However, there is a few problem here. It is not working as expected.

The problem is as below:

When upload button is clicked, it shows the previous uploaded image instead of the new uploaded image. It will only show the updated image when the page is refresh. To do so, I include a <META http-equiv='refresh' content='0; URL=admin_news_events.php'> to refresh the page but it looks like the page and the image flip two times to show the updated image. The tag I used to display the image is <img src>. I wonder how to solve this problem. Can anyone please give me an idea. Thank you.

Here are the coding:

[php]
// when Upload Image button is clicked
if ( $upimg )
{
$uploadDir = 'C:/PortableWebAp/program/www/localhost/GreedySurvey/Administrator/Events/';
$fileName = $_FILES['imgfile']['name'];
$tmpName = $_FILES['imgfile']['tmp_name'];

$ext = substr(strrchr($fileName, "."), 1);

if(!(is_dir("Events")))
{
mkdir("Events");
}

if ( empty($imgfile) )
{
echo "ERROR: No file is given";
}
else if ( $ext != "jpg" )
{
echo "ERROR: Image files must be in jpg format";
}
else
{
$fileName = "Events.jpg";
$filePath = $uploadDir . $fileName;
$result = move_uploaded_file($tmpName, $filePath);
echo "<META http-equiv='refresh' content='0; URL=admin_news_events.php'>";
// echo "Image has been uploaded successfully";
}
}

$img = "Events/Events.jpg";
if ( $delete1 )
{
if( file_exists($img) )
{
unlink($img);
echo "Image has been deleted";
}
}
[/php]
AddThis Social Bookmark Button
Reply With Quote  
Join Date: Sep 2005
Posts: 689
Reputation: digital-ether has a spectacular aura about digital-ether has a spectacular aura about 
Rep Power: 6
Solved Threads: 41
Moderator
digital-ether's Avatar
digital-ether digital-ether is offline Offline
Practically a Master Poster

Re: Preview Upload Image Problem

  #2  
Sep 17th, 2006
Instead of using the HTML meta-refresh, you can send specific HTTP headers that thell the browser not to cache the image.

See the header() function: http://php.net/manual/en/function.header.php

These headers should do it for you:
[php]
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
[/php]

You can also simply add a random number as a parameter at the end of the image src. Say the date, that will force the browser to reload the image.

eg:

<img src="image.jpg?time=<?php echo now(); ?>" />

That makes sure you have a new src each time, but it still points to the same image.
www.fijiwebdesign.com - web design and development and fun
Cpanel Email - Let users Register email accounts on your website upon registration
Ajax Chat - Fully browser based chat!
Reply With Quote  
Join Date: Sep 2006
Posts: 83
Reputation: rinoa04 is on a distinguished road 
Rep Power: 3
Solved Threads: 4
rinoa04's Avatar
rinoa04 rinoa04 is offline Offline
Junior Poster in Training

Re: Preview Upload Image Problem

  #3  
Sep 18th, 2006
Can you explain what header tag is used for. I am always confuse with it. I saw a few example that use it but I don't know what is the exact purpose. The coding still work even if I eliminate the header tag.

I did try to apply the header tag in php coding but it always causing error in the coding. Hence, I don't use it in any php coding because I can't find what is the problem.
Reply With Quote  
Join Date: Jul 2004
Location: North East Indiana
Posts: 491
Reputation: Puckdropper is an unknown quantity at this point 
Rep Power: 5
Solved Threads: 20
Puckdropper Puckdropper is offline Offline
Posting Pro in Training

Re: Preview Upload Image Problem

  #4  
Sep 18th, 2006
HTML headers tell the web browser about the page. Things like status information, or special requests are in the headers and are sent before the content of the page. You cannot have any output before headers are sent, otherwise you get errors.

Can you imagine the "oh but" method of programming? Do x, oh but do it like y. This requirement helps keep that away.
www.uncreativelabs.net

Old computers are getting to be a lost art. Here at Uncreative Labs, we still enjoy using the old computers. Sometimes we want to see how far a particular system can go, other times we use a stock system to remind ourselves of what we once had.
Reply With Quote  
Join Date: Sep 2005
Posts: 689
Reputation: digital-ether has a spectacular aura about digital-ether has a spectacular aura about 
Rep Power: 6
Solved Threads: 41
Moderator
digital-ether's Avatar
digital-ether digital-ether is offline Offline
Practically a Master Poster

Help Re: Preview Upload Image Problem

  #5  
Sep 18th, 2006
Originally Posted by Puckdropper View Post
HTML headers tell the web browser about the page...


Hi Puckdropper,

Think you made a lil typo. Its HTTP Headers instead of HTML Headers.

rinoa04,

Originally Posted by Puckdropper View Post
Things like status information, or special requests are in the headers and are sent before the content of the page. You cannot have any output before headers are sent, otherwise you get errors.


Like Puckdropper mentioned, you need to make sure you dont output any content before setting a HTTP header to be sent.
What you can do is use the output buffering functions in php so that you dont need to worry about those errors.

See: http://us3.php.net/outcontrol

www.fijiwebdesign.com - web design and development and fun
Cpanel Email - Let users Register email accounts on your website upon registration
Ajax Chat - Fully browser based chat!
Reply With Quote  
Join Date: Sep 2006
Posts: 83
Reputation: rinoa04 is on a distinguished road 
Rep Power: 3
Solved Threads: 4
rinoa04's Avatar
rinoa04 rinoa04 is offline Offline
Junior Poster in Training

Re: Preview Upload Image Problem

  #6  
Sep 19th, 2006
Hmm... Now I understand more on header though I am still a bit confuse. Thank you for your help digital-ether and Puckdropper.
Thank you very much
Reply With Quote  
Join Date: Jul 2004
Location: North East Indiana
Posts: 491
Reputation: Puckdropper is an unknown quantity at this point 
Rep Power: 5
Solved Threads: 20
Puckdropper Puckdropper is offline Offline
Posting Pro in Training

Re: Preview Upload Image Problem

  #7  
Sep 20th, 2006
No typo, HTML means HTTP To Markup Language. See how much more descriptive it is?

Yes, I did state that incorrectly. Good catch, digital-ether.

rinoa04,

What are you still confused about? At this point, the only thing I could really do to help is refer you to a search engine with the query "HTTP headers".
www.uncreativelabs.net

Old computers are getting to be a lost art. Here at Uncreative Labs, we still enjoy using the old computers. Sometimes we want to see how far a particular system can go, other times we use a stock system to remind ourselves of what we once had.
Reply With Quote  
Join Date: Sep 2005
Posts: 689
Reputation: digital-ether has a spectacular aura about digital-ether has a spectacular aura about 
Rep Power: 6
Solved Threads: 41
Moderator
digital-ether's Avatar
digital-ether digital-ether is offline Offline
Practically a Master Poster

Re: Preview Upload Image Problem

  #8  
Sep 20th, 2006
Originally Posted by Puckdropper View Post
No typo, HTML means HTTP To Markup Language. See how much more descriptive it is?


Lol... it is..
www.fijiwebdesign.com - web design and development and fun
Cpanel Email - Let users Register email accounts on your website upon registration
Ajax Chat - Fully browser based chat!
Reply With Quote  
Join Date: Sep 2006
Posts: 83
Reputation: rinoa04 is on a distinguished road 
Rep Power: 3
Solved Threads: 4
rinoa04's Avatar
rinoa04 rinoa04 is offline Offline
Junior Poster in Training

Re: Preview Upload Image Problem

  #9  
Sep 21st, 2006
Ok. I get it now after trying on a few examples. I understand why I always get those errors. Thanks again to the both of you Puckdropper and digital-ether.
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.

DaniWeb PHP Marketplace
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)

 

Thread Tools Display Modes

Similar Threads
Other Threads in the PHP Forum

All times are GMT -4. The time now is 6:53 am.
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC