title: Sending correct file size with PHP download script
body: <p>I created a file download script in PHP, it works, but web browsers report the file as "Unknown Length".  My code is as follows:</p>
  
  <pre><code>function downloadFile($file){
    // Set up the download system...
    header('Content-Description: File Transfer');
    header('Content-Type: '.mime_content_type($file));
    header('Content-Disposition: attachment; filename="'.basename($file).'"');
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: '.filesize($file));
  
    // Flush the cache
    ob_clean();
    flush();
  
    // Send file to browser
    readfile($file);
  
    // DO NOT DO ANYTHING AFTER FILE DOWNLOAD
    exit;
  }
  </code></pre>