Initial question doesn't contain enough info to give a qualified response.
The build default for PHP is 2MB. The devs at PHP default the installation to 2MB because they are aware that PHP isn't the platform of choice as a stable file transfer mechanism. DreamHost is being generous by overriding and bumping the limit to 7MB at build time. You can "upload" multi-Gigabyte files on a server with a "2MB PHP limit" btw.
How long is a piece of string?
The number you're seeking is volatile and method-dependent, but is limited only by file system restrictions if you know what you're doing. If you're POSTing a file into memory then you're going to hit a limit. If there's a session going on you're going to hit a limit. Slow connection? You're going to hit a limit. There might be a limit on /tmp filesizes in shared so create and set your own. If you're having problems keeping a session alive use AJAX or something to keep the user's browser active.
You can upload multi-Gigabyte files using PHP, but it's better to write the file to the destination in chunks using more robust methods. This is why God invented the CGI and protocols other than HTTP.
Maximum Cash Discount on any plan with MAXCASH
How To Install PHP.INI / ionCube on DreamHost