Forcer le téléchargement de fichiers avec PHP à l'aide de Header()
Problème :
Malgré diverses tentatives, les utilisateurs constatent difficultés à demander le téléchargement de fichiers à partir d'un serveur à l'aide de la fonction header() de PHP. Ils observent l'envoi des en-têtes nécessaires mais rencontrent des problèmes lors de l'affichage de la boîte de dialogue de sauvegarde.
Solution :
Pour réussir à forcer les téléchargements de fichiers, les en-têtes doivent être définis de manière appropriée. Le code suivant répond aux préoccupations soulevées :
$quoted = sprintf('"%s"', addcslashes(basename($file), '"\')); $size = filesize($file); header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . $quoted); header('Content-Transfer-Encoding: binary'); header('Connection: Keep-Alive'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . $size);
Différences clés par rapport aux tentatives précédentes :
Navigateurs vérifiés :
Il a été confirmé que cette solution fonctionne dans Firefox 8.0.1, Chrome 15.0.874.121 et Safari 5.1.1.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!