In your php.ini, or wherever your php config happens, look for
post_max_size. PHP defaults this to 8MB, but it is often set to 2MB by web hosts.
That’s the server side of things. Some browsers won’t upload more than 2MB no matter what you do. Honestly, it sounds to me like it’s time to refactor the form — split it into several steps, and/or do incremental updates via ajax.