الان این کد رو استفاده کردم و جواب داد
header('Content-Description: File Transfer');
header('Content-Type: application/force-download');
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("Cache-Control: private",false);
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit();
اما این کد یه فایل با حجم 0 کیلو بایت ارسال کرد
header("Content-type: application/octet-stream");
header('Content-Disposition: attachment;filename="'.basename($file).'"');
header('X-Sendfile: '.$file);
مشکل کد دوم چیه ؟