I’m developing a Web application that will let users upload images.
My concern is the file´s size, specially if they are invalid formats.
I’m wondering if there´s a way in java (or a third party library) to check the allowed files formats (jpg, gif and png) before reading the entire file.
If you wish to support only a few types of images you can start by (up)loading the image and at some point use the first few bytes to check wether you wish to continue the upload.
Quite a lot of image formats can be recognized by the first few bytes, the magic number. If the number matches you don’t know whether the file is valid of course, but it may be used to match extension and magic number to prevent is really does not correspond at all.
Have a look at this page to check out some Java which checks mime-types. Do read the docs or source to check whether any given method requires the entire file, or can operate on the first few bytes. I’ve not used those libraries 🙂
Also check out this page which also lists some java libraries, and some papers on which detection is based.
Don’t forget to put in some feedback if you managed to find something you like!