This is NOT a file upload. Its a download. The problem with the current code is that it will eat memory like hell. file_get_contents gets the file to a string which means that you would have to have 1,4Gb(probably even more) of memory reserved for 1,4Gb file.
Use stream functions to read and copy the file. Check the manual:
http://www.php.net/manual/en/function.stream-copy-to-stream.php
In the first comment(by sundance2001) theres a working function to download the file. Modify that to your needs.
That function needs PHP5. If you have only PHP4 in use, you can use fgets to retrieve/write the file piece by piece. Check the examples and comments also on that function.
If I remember right, max_execution_time doesnt affect these functions. BTW, I tried to get the file (medium.zip) but the server timed out after ~45Mb. I didnt have any problems downloading large file from another server..
If those doesnt work, you could also use fetch or wget(depends if they are installed and you can execute shell commands from php).