readfile下载文件添ob_clean作用

readfile下载文件加ob_clean作用
手册中readfile例子
$file = '12.jpg';

if(file_exists($file)){

header('Content-Description: File Transfer');
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit();
}

在这里加ob_clean和flush有什么作用?不加也能下载,加不加有什么区别
------解决方案--------------------
如果说 ob_clean(); 清除缓冲区,用的还有点道理的话
那么 flush(); 推出输出缓冲区,就没有道理了
因为无论如何,输出缓冲区中的内容都要被输出的