Why this code dont work well?

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
yarin1312
Forum Newbie
Posts: 2
Joined: Sat Aug 18, 2012 7:49 am

Why this code dont work well?

Post by yarin1312 »

i wrote a code in php that give you to upload a picture to the website, and now this is the code:

Code: Select all

<?php
// Checks if the form was submitted
if($_SERVER['REQUEST_METHOD'] == 'POST') {
// Checks if a file was uploaded without errors
if(isset($_FILES['photo'])
&& is_uploaded_file($_FILES['photo']['tmp_name'])
&& $_FILES['photo']['error']==UPLOAD_ERR_OK) {
// Checks if the file is a JPG image
if($_FILES['photo']['type']=='image/jpeg') {
$tmp_img = $_FILES['photo']['tmp_name'];
// Creates an image resource
$image = imagecreatefromjpeg($tmp_img);
// Tells the browser what type of file
header('Content-Type: image/jpeg');
// Outputs the file to the browser
imagejpeg($image, '', 90);
// Frees the memory used for the file
imagedestroy($image);
} else {
print_R($_FILES);
}
} else {
echo "No photo uploaded!" ;
}
} else {
// If the form was not submitted, displays the form HTML
?>
<form action="form.php" method="post"
enctype="multipart/form-data">
<label for="photo">User Photo:</label>
<input type="file" name="photo" />
<input type="submit" value="Upload a Photo" />
</form>
<?php } // End else statement ?> 
this code is from the PHP for absolute beginner of apress and every time i try to upload a jpg picture, and i tried four, its give me this:
Array ( [photo] => Array ( [name] => Untitled.jpg [type] => image/pjpeg [tmp_name] => C:\wamp\tmp\phpC401.tmp [error] => 0 [size] => 357507 ) )
User avatar
requinix
Spammer :|
Posts: 6617
Joined: Wed Oct 15, 2008 2:35 am
Location: WA, USA

Re: Why this code dont work well?

Post by requinix »

Code: Select all

[type] => image/pjpeg
Compare that with what your code expects.

Don't use the [type] to determine the type of file. It's provided by the browser which means it could be absolutely anything: right, different, or even completely wrong. Determine the file type yourself. Fortunately that's easy to do if you use getimagesize.
User avatar
s.dot
Tranquility In Moderation
Posts: 5001
Joined: Sun Feb 06, 2005 7:18 pm
Location: Indiana

Re: Why this code dont work well?

Post by s.dot »

It appears that it's reaching the print_r() section of the code and is working as expected.
I believe IE uses the img/pjpeg mime time.
The post above me is correct, use getimagesize().
Set Search Time - A google chrome extension. When you search only results from the past year (or set time period) are displayed. Helps tremendously when using new technologies to avoid outdated results.
Post Reply