En-têtes HTTP pour les téléchargements de fichiers : dépannage de type de contenu
Les téléchargements de fichiers impliquent souvent la définition d'en-têtes HTTP appropriés pour garantir que le navigateur gère correctement le fichier . Si certains fichiers sont mal identifiés, cela est probablement dû à l'absence d'en-tête Content-Type.
Pour rectifier cela, suivez ces étapes :
1. Définir l'en-tête de type de contenu :
header('Content-Type: application/force-download');<br>
Ce générique type couvre un large éventail de formats de fichiers et oblige le navigateur à télécharger le fichier.
2. Éliminer la mise en mémoire tampon de sortie :
@ob_end_clean();<br>
Désactivez toute mise en mémoire tampon de sortie pour éviter toute interférence avec le processus de téléchargement de fichiers.
3. Empêcher la mise en cache des fichiers :
header('Cache-Control: private');<br>header('Pragma: private');<br>header('Expires: Mon, 26 juillet 1997 05:00:00 GMT');<br>
Ces en-têtes garantissent que le navigateur ne met pas en cache le fichier et force un nouveau téléchargement à chaque fois.
4. Afficher le fichier :
<br>$bytesSend = 0;<br>if($file = fopen($filePath, 'r')) {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">if(isset($_SERVER['HTTP_RANGE'])) { ... (implementation for handling file chunks) } else { while(!feof($file) && !connection_aborted() && $bytesSend < $newLength) { ... (implementation for reading and outputting the file) } }
}
Dialogue de téléchargement retardé :
Le délai important entre l'exécution du script et la boîte de dialogue de téléchargement l'apparence peut être causée par :
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!