Här har du det hela:
PHP-kod:
$real_file = '123.exe';
$virtual_file = 'linus.exe';
header("Content-Length: " . filesize($real_file));
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename='".$virtual_file."'");
readfile($real_file);
Men tänk på att använda PHP's binärsäkra funktioner eftersom annars kan filerna bli korrupta. Samt att felrapportering är avslaget (display_errors = off) eftersom detta annars avslöjar ev. sökvägar till "riktiga" filer.