Re: Re: how to detect type of image

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/28/07, Tim <downloadsoft@xxxxxxx> wrote:
On 21.04.2007 12:45, Alain Roger wrote:
> Hi,
>
> In my web application, end user is able to load images (png, jpeg,
> gif,..) into database. I would like to know how can i detect
> automatically the type of image (pnd, jpeg,...) ? i do not want to
> check the extension because this is easily faked... just by renaming
> it.
>
> Does it exist a technique for that ?
>
> thanks a lot,
>

Hi,

unfortunately mime_content_type() does not work for me. This functions
does always return false, although the "magic.mime" is valid.
Here is a function I wrote to determine the correct extension of an
image file:

function get_image_extension($filename)
{
    if (function_exists('exif_imagetype'))
    {
        switch (exif_imagetype($filename))
        {
            case 1:
                return 'gif';
            case 2:
                return 'jpg';
            case 3:
                return 'png';
            case 4:
                return 'swf';
            case 5:
                return 'psd';
            case 6:
                return 'bmp';
            case 7:
                return 'tiff';
            case 8:
                return 'tiff';
            case 9:
                return 'jpc';
            case 10:
                return 'jp2';
            case 11:
                return 'jpx';
            case 12:
                return 'jb2';
            case 13:
                return 'swc';
            case 14:
                return 'iff';
            case 15:
                return 'wbmp';
            case 16:
                return 'xbm';
            default:
                return false;
        }
    }
    else
        return false;
}

Best regards,
Tim


First of all, i don't see any reason why this works better then other
functions, as it also relies on the magic bytes.

Second, for your switch, you should use the constants
(IMAGETYPE_GIF,IMAGETYPE_JPEG,...) instead of just using decimal
values.

Tijnema

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux