Enregistrer au format pdf vers serveur local
Je suis entrain de créer un fichier PDF à partir de données binaires brutes et il fonctionne parfaitement, mais parce que les en-têtes que je définis dans mon fichier PHP, il demande à l'utilisateur de "enregistrer" le fichier ou le "ouvrir avec". Est-il possible que je peux enregistrer le fichier sur le serveur local quelque part ici http://localhost/pdf
?
Ci-dessous sont les en-têtes que j'ai défini dans ma page
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: application/pdf");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Transfer-Encoding: binary");
OriginalL'auteur Salman | 2012-02-15
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez enregistrer le fichier sur le serveur plutôt que d'avoir le visiteur le télécharger, vous n'aurez pas besoin de les en-têtes. Les en-têtes sont pour lui dire au client que vous êtes en les envoyant, qui est dans ce cas rien (bien que vous êtes susceptibles d'affichage d'une page à lier à vous PDF nouvellement créé ou quelque chose).
Donc, au lieu de simplement utiliser une fonction comme
file_put_contents
pour stocker le fichier localement, laissant finalement votre serveur web gérer le transfert de fichiers et les en-têtes HTTP.Comme la question n'est pas sur la création de PDF de données à l'aide de PHP, mais plutôt sur la façon d'enregistrer de telles données est hors de portée. La première ligne dans mon code exemple également stipule clairement "disons que vous avez une fonction
generate_pdf()
qui crée le fichier PDF". Mais je suis sûr que vous pouvez trouver une réponse convenable par recherche "générer pdf en utilisant php" ou quelque chose le long de ces lignes.oui, je rencontre beaucoup de bibliothèque pour
generate php content to pdf
mais il ne peut toujours pas acceptable parce que ma langue n'est pas de comprendre avec pdf 🙁 ,, je m'en fou maintenant();Cela a fonctionné pour moi, à l'aide de la fpdf bibliothèque, $pdf_data = $pdf->Output(); Ces 3 lignes me permettre d'enregistrer le .pdf afin que je puisse le joindre à un e-mail (dans la suite du script).
OriginalL'auteur Simon
Vous pouvez utiliser les fonctions de contrôle de sortie. Lieu ob_start() au début de votre script. À la fin de l'utilisation ob_get_contents() et enregistrer le contenu d'un fichier local.
Après cela, vous pouvez utiliser ob_end_clean() ou ob_end_flush (), selon que vous voulez à la sortie PDF pour navigateur, ou vous rediriger l'utilisateur vers une autre page. Si vous utilisez ob_end_flush() assurez-vous de définir les en-têtes avant de rincer les données.
Ça dépend de la bibliothèque utilisez-vous pour créer un fichier PDF. Certaines bibliothèques sont seulement en mesure de sortie vers le navigateur directement, de sorte que vous ne peut pas "tout simplement l'enregistrer".
Ah, je vois. Qui fait sens.
OriginalL'auteur Milan Babuškov