Solved

Get dimensions of an image on upload can this be done

Posted on 2007-03-17
5
576 Views
Last Modified: 2008-03-25
Is it possible without the use of imagemagick or GD or such like with php alone to get the dimensions of an image that is being uploaded?

I mean, lets say some user wants to upload an image 1000w x 600h pixels and we dont want an image that large on our server could this upload code we are using be modified to terminate the upload and give a warning dialog  stating the max dimensions we will allow?

Here is our code

<?

$i=0;




    if (is_dir ("gallery/".$userdata['username']."")) {
       
    }
      else
      {
         $mypath="gallery/".$userdata['username']."";
           mkdir($mypath,0777);
      }



if ($_FILES["file"]["size"] < 20000000)
      {
              if ($_FILES["file"]["error"] > 0)
                     {
                      echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
                }
             else
                {
                        echo "Uploaded: " . $_FILES["file"]["name"]. $i . "<br>";
                        while (file_exists("gallery/".$userdata['username']."/" . $_FILES["file"]["name"]. $i))
                            {
                                    $i++;
                                  }

                        move_uploaded_file($_FILES["file"]["tmp_name"], "gallery/".$userdata['username']."/" . $_FILES["file"]["name"] . $i);
                        echo "Stored in: " . "".$userdata['username']."/" . $_FILES["file"]["name"] . $i;
                        echo '<br><br>';
                }
              }
 
  $url =  "gallery/".$userdata['username']."/" . $_FILES["file"]["name"]. $i;
 
 
$uploadimage = 'INSERT INTO gallery (`user_name`, `user_id`, `image_url`, `image_desc`, `image_name`, `image_website`) VALUES (\''.$_POST['username'].'\',\''.$userdata['user_id'].'\', \''.$url.'\', \''.$_POST['desc'].'\', \''.$_POST['name'].'\', \''.$_POST['web'].'\');';
 mysql_query($uploadimage);

0
Comment
Question by:vbMarkO
5 Comments
 
LVL 15

Accepted Solution

by:
babuno5 earned 500 total points
ID: 18742705
check this function out
http://in2.php.net/getimagesize
0
 
LVL 14

Expert Comment

by:raja_ind82
ID: 18742870
------------------------------------------------------------------------
<?php
//$a_imagesize = getimagesize($_FILES['uploaded_filename']['tmp']);
$a_imagesize = getimagesize("Sunset.jpg");
print_r($a_imagesize);
?>
-------------------------------------------------------------------------------------
[0] = width
[1] = height
[2] = type
[3] = "width=x heigh=y" for the <img> tag.

Returns an array with 4 elements.

Index 0 contains the width of the image in pixels.
Index 1 contains the height.
Index 2 is a flag indicating the type of the image:
 1 = GIF,
 2 = JPG,
 3 = PNG,
 4 = SWF,
 5 = PSD,
 6 = BMP,
 7 = TIFF(intel byte order),
 8 = TIFF(motorola byte order),
 9 = JPC,
 10 = JP2,
 11 = JPX,
 12 = JB2,
 13 = SWC,
 14 = IFF,
 15 = WBMP,
 16 = XBM.
 These values correspond to the IMAGETYPE constants that were added in PHP 4.3.0.
Index 3 is a text string with the correct height="yyy" width="xxx" string that can be used directly in an IMG tag.

NOTE: Just because getimagesize can return types in a lot of images doesn't mean it can process them. TIFF files is a good example!

i hope this will help you.

Regards,
M.Raja
0
 
LVL 1

Expert Comment

by:gobinathm
ID: 18792392
list($width, $height, $type, $attr) = getimagesize($file)

$file is nothing but the name of the file you have uploaded. By this method you can get it in seperate variables instead of getting all the values in an array.

Now you will have you width in the variable $width & height in the variable $height.
0
 
LVL 1

Expert Comment

by:Computer101
ID: 21207274
Forced accept.

Computer101
EE Admin
0

Featured Post

Does Powershell have you tied up in knots?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Author Note: Since this E-E article was originally written, years ago, formal testing has come into common use in the world of PHP.  PHPUnit (http://en.wikipedia.org/wiki/PHPUnit) and similar technologies have enjoyed wide adoption, making it possib…
Part of the Global Positioning System A geocode (https://developers.google.com/maps/documentation/geocoding/) is the major subset of a GPS coordinate (http://en.wikipedia.org/wiki/Global_Positioning_System), the other parts being the altitude and t…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question