Maison  >  Article  >  développement back-end  >  Comment définir les en-têtes PHP corrects pour le téléchargement de fichiers PDF : pourquoi l'approche commune échoue-t-elle et comment y remédier ?

Comment définir les en-têtes PHP corrects pour le téléchargement de fichiers PDF : pourquoi l'approche commune échoue-t-elle et comment y remédier ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-03 03:34:02705parcourir

How to Set the Correct PHP Headers for PDF File Download: Why Does the Common Approach Fail and How to Fix It?

Comment définir les en-têtes PHP corrects pour le téléchargement de fichiers PDF

De nombreux utilisateurs rencontrent des difficultés lorsqu'ils tentent de configurer leurs applications Web pour ouvrir automatiquement un Document PDF lorsqu'un lien est cliqué. Cet article vise à apporter une solution à ce problème.

Une approche courante consiste à utiliser une redirection vers une page spécifique qui génère les en-têtes nécessaires pour lancer le téléchargement du PDF. Cependant, l'extrait de code suivant échoue souvent :

<code class="php">$filename = './pdf/jobs/pdffile.pdf;
$url_download = BASE_URL . RELATIVE_PATH . $filename;
header("Content-type:application/pdf");
header("Content-Disposition:inline;filename='$filename\"");
readfile("downloaded.pdf");</code>

Pour résoudre ce problème, il est recommandé de suivre l'approche démontrée dans l'exemple 2 sur w3schools :

<code class="php">header("Content-type:application/pdf");

// Set the desired file name for download
header("Content-Disposition:attachment;filename=\"downloaded.pdf\"");

// Read the PDF content from its source file
readfile("original.pdf");</code>

Il est crucial de rappelez-vous que header() doit précéder toute sortie réelle. Dans les versions PHP 4 et supérieures, la mise en mémoire tampon de sortie peut être utilisée pour contourner cette limitation.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn