Disposition de contenu est ok, mais une autre solution serait en utilisant PATH_INFO et obtenir le fichier de cette façon:
http://example.com/download.php/2793156879.zip
Votre download.php sera comme
// handle path_info
$filename=$_SERVER['PATH_INFO']; // gets "/2793156879.zip" as $filename
// do smtg w/ $filename...
// ...
// download
$len = filesize($filename);
header("Content-type: application/force-download");
header("Content-Length: $len");
readfile($filename);
Note: L'application/force- le téléchargement n'existe pas, il est juste là pour forcer les téléchargements avec tous les navigateurs. (certains MSIE semblent avoir eu des problèmes avec application/octet-stream)
Cette approche a l'avantage de fonctionner avec tous les navigateurs: même les très anciens, ne supportant pas l'en-tête "Content-Disposition:".
Il a le petit inconvénient que vous avez à substr() le code produit vous-même de la chaîne PATH_INFO
Est-ce une constante id? –