xyz.csv diye niye bir dosya yapıyorsunuz?
PHP de bildiğim kadarıyla:

header('Content-Type: '.$filetipi); 
header('Content-disposition: attachment; filename=dosya_ismi.csv'); 
header('Content-Transfer-Encoding: binary'); 
echo 'herhangi bir yazi';
yaptık mı;

dosya_ismi.csv içinde herhangi bir yazı olur, bizim dosya_ismi.csv oluşturmamıza ve servera koymamıza gerek olmaması gerek.

Bir de söyle deneyin;
header('Content-Type: application/octetstream');
header('Content-Disposition: inline; filename=xyz.csv');
header("Content-Transfer-Encoding: binary");
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
readfile('abc.csv');