Only affects uploads. max_input_time
Downloads are affected by script execution time. However, if you use read_file it shouldn’t be an issue since that function hands a file to the webserver to send to the client. If it is then the issue is probably in the webserver, not PHP.
Hmmm… I have had file size issues when I didn’t send my file size header, particularly with IE. That may be the problem here. Try this:
header ('Content-length: '.filesize($fileToSendPath));