Les limites d'upload sont avant tout fixées par le serveur dans le fichier php.ini suivant les valeurs de post_max_size, upload_max_filesize, et un peu aussi memory_limit
upload_max_filesize : poids maximal de chaque fichier envoyé
post_max_size : poids maximal du total de l'envoi
memory_limit : il est recommandé de mettre une valeur au moins égale à post_max_size
Pour ton exemple, il faudrait :
upload_max_filesize = 4M (au moins)
post_max_size = 80M (4mo x 20 images)
memory_limit = 128M (qui est une valeur souvent utilisée)
Quand on a son propre serveur, changer ces réglages prend 1mn ;)
Quand on n'a pas accès au fichier php.ini, il y a d'autres moyens.
Certains hébergeurs permettent d'en ajouter un à la racine de son hébergement, comme Cyril en a fait l'expérience http://www.oxwall.org/forum/topic/42736
Il est aussi possible d'ajouter des réglages via le fichier .htaccess si AllowOverride le permet :
php_value upload_max_filesize 4M
php_value post_max_size 80M
Oxwall permet aussi de mettre une limite à la taille d'envoi. Mais ca ne pourra jamais être supérieur au réglage du serveur.
Edité pour corriger les retours à la ligne, comme d'hab...
Mais bon, si ça marche bien comme ça, tant mieux ;)