Untested but should work:
$size = filesize($download_file_name);
$fp = fopen($download_file_name,"rb");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: public");
if (strstr($HTTP_USER_AGENT, "MSIE")){
header("Content-Type: application/save");
}
else {
header("Content-Type: application/octet-stream");
}
header("Content-Disposition: attachment; filename=$download_file_name");
header("Content-Length: $size");
header("Content-Transfer-Encoding: binary");
$stdout = fopen("php://stdout", "w");
$bytesWritten = fwrite($stdout, $size);
$bytesWritten should equal $size if everything went well, so check for that to get your status.