title: PHP cURL download progress using jquery
body: <p>I can't figure out how to push the progress out every time it updates using php. For the sake of clarity, I will write an example.  </p>
  
  <p>jQuery:</p>
  
  <pre><code>function uploadMovieDownload(link){
      $.post("php/downloadmovie.php", { source:link }, function(json){ console.log(json); });
  }
  
  uploadMovieDownload(url);
  </code></pre>
  
  <p>PHP (php/downloadmovie.php):  </p>
  
  <pre><code>session_start();
  ob_start();
  date_default_timezone_set("Europe/Bucharest");
  ini_set('display_errors',true);
  
  require_once(dirname(__FILE__)."/functions.php");
  
  
  $url = $_POST['source'];
  $headers = getHeaders($url);
  $url = $headers['url'];
  $path = dirname(__FILE__)."/temp/test.mp4";
  
  $fp = fopen ($path, 'w+');
  $ch = curl_init();
  curl_setopt( $ch, CURLOPT_URL, $url );
  curl_setopt( $ch, CURLOPT_RETURNTRANSFER, false );
  curl_setopt( $ch, CURLOPT_PROGRESSFUNCTION, 'progress' );
  curl_setopt( $ch, CURLOPT_NOPROGRESS, false );
  curl_setopt( $ch, CURLOPT_BINARYTRANSFER, true );
  curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
  curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 100 );
  curl_setopt( $ch, CURLOPT_FILE, $fp );
  curl_exec( $ch );
  curl_close( $ch );
  fclose( $fp );
  
  
  function progress($resource,$download_size, $downloaded, $upload_size, $uploaded){
      if($download_size &gt; 0) echo $downloaded / $download_size  * 100;
      ob_flush();
      flush();
  }
  
  echo "Done";
  ob_flush();
  flush();
  </code></pre>
  
  <p>The problem I have is that it returns the progress after it completes, it isn't pushing it while downloading. Thanks in advance if you have any sugestions.</p>