PHP File Upload Limited To 20 And With Suhosin 25
With the release of PHP 5.3.1 the php.ini directive max_file_uploads came into play. This is designed to prevent DOS (denial of service) attacks. By default this is set to 20.
So if you try to upload more than 20 files the remaining files will fail. Upload fields left blank on submission will count towards this limit. So you can try to add one photo with a form that has over 20 fields and that upload will fail.
Starting with PHP 5.3.4 the empty fields do not count towards the total.
But if you require more than 20 file uploads in a form you will need to update your php.ini max_file_uploads.
Another issue we came across is you can update this directive and still have issues. If your installation uses the Suhosin Extension they have a limit of 25 files. Set with suhosin.upload.max_uploads. They are configured in php.ini, here is a Suhosin configuration guide.