http://www.perlmonks.org?node_id=779308


in reply to Need a RegExp for Images

According to the "Useful tips" section (on page 7) of the official specs, you should be able to read the first 11 bytes of the file and match this pattern:
/\xff.\xff...JFIF\x0/
Based on looking at a small number of "*.jpg" files I happen to have uploaded from a camera (via "iPhoto", which may have been involved in "updating" some of those pictures after the upload), I would actually change that to:
/\xff.\xff...(?:JFIF|Exif)\x0/
And apparently, you might expect "JFXX" as well. But frankly, I'd be content to trust the file name, and so would focus on the first reply above.

UPDATE: The above assumes that the file is being read in :raw mode (what we commonly understand as the default behavior of doing binmode FH). Also, I agree with what afoken says below: use a module to validate jpeg files, in case there is any doubt about their validity.