In addition to other answers
If you upload your file to a fast server, so the link to your ISP is the slowest link in a chain, then the transfer will be limited to 4 Mbps by your ISP – it's true in general for large files.
But if the hardware can do better (i.e. the 4Mbps is an arbitrary limit set by your ISP because you pay for this option only, not some faster one) and your file is small enough then you may experience "burst upload speed".
It means your ISP may allow you to send the first 10 MB (an example, the actual value is set by your ISP) of a file a lot faster than the declared 4 Mbps if your link has been idle (or almost idle) for a while. After these 10 MB the link gets "saturated" and the 4 Mbps limit applies for remaining data. Make your link almost idle for another while and you will be able to burst again.
In other words: if you keep your upload low for a few seconds you gain a credit of some bytes you can upload a lot faster before your limit kicks in.
This mechanism makes your web browsing more snappy, improves uploads of files.
From ISP's point of view many of their clients generate such upward burst only. They (as a group) hardly ever saturate the ISP's link to the Internet (its upload bandwidth) because the bursts occur randomly at different moments, so there's no point in limiting every single connection. Thanks to the bursts these clients are happy with more responsive Facebook when they post their food photos. On the other hand few clients using P2P or sending large files at the same moment may saturate the link to the outside, so they are limited when they exceed some threshold.
A file of 4 Mb in your example is rather small, it is 0.5 MB. It may be transferred a whole within a single burst if your ISP supports it. You may hit some other limit (or temporary network slowdown) somewhere beyond your ISP though.