1. Le problème :
Vous essayez de permettre aux utilisateurs de télécharger des fichiers depuis votre serveur, mais le fichier n'affiche pas de boîte de dialogue « Enregistrer sous ».
2. La cause :
Déclaration de type de contenu incorrecte dans l'en-tête.
3. La solution :
Assurez-vous que l'en-tête du type de contenu est défini sur application/octet-stream pour les téléchargements de fichiers :
header('Content-Type: application/octet-stream');
4. Conseils supplémentaires :
5. Exemple de code :
$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); readfile($file);
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!