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.
Did you steal it?
User avatar
requinix
Spammer :|
 
Posts: 5477
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: Google [Bot] and 19 guests