En php, pour l'upload de fichiers vous êtes soumis aux paramètres de votre hébergement (upload_max_filesize et post_max_size). Mais si vous n'êtes pas maître du serveur, vous ne pouvez peut-être pas les modifier.
A défaut, vous pouvez utiliser ces libs qui permettent l'upload de fichier de manière pratiquement illimitée, en procédant par morceaux (chunks), mais de manière transparente pour l'utilisateur. Elles sont constituées d'une lib javascript et d'un bout de php côté serveur.
https://code.google.com/p/ax-jquery-multiuploader/
http://www.plupload.com/ (
https://github.com/moxiecode/plupload)