PHP Downloading a Huge Movie File (500 MB) with cURL PHP Downloading a Huge Movie File (500 MB) with cURL curl curl

PHP Downloading a Huge Movie File (500 MB) with cURL


I wouldn't recommend serving large binary files using PHP or any other scripting technology for that matter. They where never design for this -- you can use apache, nginx or whatever standard http server you have on the back end. If you still need to use PHP, then you should probably check out readfile_chunked.

http://php.net/readfile#48683and here's a great tutorial.http://teddy.fr/blog/how-serve-big-files-through-php

good luck.


readfile() doesnt buffer. However, php itself might buffer. Turn buffering off

while (ob_get_level())    ob_end_clean();readfile($file);

Your web server might buffer. Turn that off too. How you do it depends on the webserver, and why its buffering.


I see two problem that can happen:

  • First: Your web server may be closed the connection by timeout. you should look the web server config.
  • Second: Timeout with curl. I recommend to see this post.