Pour envoyer un fichier en attachement avec php il faut envoyer les headers suivants au navigateur:
header('Content-type: application/zip;');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Content-Length: '.filesize($file));
readfile($file);
Cela permet de faire télécharger un fichier à l'utilisateur lorsqu'il clique sur un lien sans faire changer la page.
Image : John Trainor