PDFファイルを直接リンクさせずにPHP経由で表示もしくはダウンロードさせる方法
セキュリティ等の問題によりaタグで直接リンクさせたくない、もしくはドキュメントルートより上のディレクトリにありリンクができないケースのPDFファイルがあった。ただ、特定のリンクをクリックするとそのPDFを表示もしくはダウンロードさせたかった。調べたところPHP経由で対応するのがよさそう。以下に対応方法をメモ。
対応方法
HTML側(ダウンロードページ)
<a href="./test.php" target="_blank">PDF</a>
PHP側(ファイル出力ページ)
<?php
$pdf = file_get_contents('./test.pdf');
header("Content-Type: application/pdf");
echo $pdf;
exit();
その他
HTML側でtest.phpを呼び出す際に当然GETパラメータも付与できるので、PHP側でパラメータを受け取ってファイルの出し分け等も可能となる。
関連記事
-
-
TCPDF「Could not include font definition」エラーの対処方法
TCPDFでフォントを「arialunicid0」に指定したところ「TCPDF ...
-
-
mpdfで「The /e modifier is …」エラー発生時の対応方法
pdf関連のPHPライブラリ「mPDF」を使っているページがエラーログにのってお ...
-
-
PHPでテンプレートPDFにリンク付きの文字を追記する方法(TCPDF&FPDI)
以前、PHPのTCPDF&FPDIを用いてテンプレートPDFに対し、動的 ...
-
-
PHPでテンプレートPDFに動的に文字や数値を追記し出力する方法(TCPDF&FPDI)
請求書や領収書のテンプレートがあり、そちらに対して動的に文字・数値を追記し出力さ ...
-
-
PHPでパスワード付きのZIP / PDFファイルを作成する方法
PHPでZIPファイル化する方法やPDFファイル出力する方法を過去に書いたが、何 ...