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

Why this code dont work well?

Postby yarin1312 » Tue Aug 21, 2012 8:22 am

i wrote a code in php that give you to upload a picture to the website, and now this is the code:
Syntax: [ Download ] [ Hide ]
<?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 ) )
yarin1312
Forum Newbie
 
Posts: 2
Joined: Sat Aug 18, 2012 7:49 am

Re: Why this code dont work well?

Postby requinix » Tue Aug 21, 2012 10:36 am

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.
The terror of immortality is eternal solitude. An endless reality tormented by the consciousness of one's sins.
User avatar
requinix
Spammer :|
 
Posts: 4788
Joined: Wed Oct 15, 2008 2:35 am
Location: WA, USA

Re: Why this code dont work well?

Postby s.dot » Wed Aug 22, 2012 5:26 pm

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().
User avatar
s.dot
Tranquility In Moderation
 
Posts: 4990
Joined: Sun Feb 06, 2005 8:18 pm
Location: Indiana


Return to PHP - Code

Who is online

Users browsing this forum: No registered users and 7 guests