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側でパラメータを受け取ってファイルの出し分け等も可能となる。
関連記事
-
-
PHPでパスワード付きのZIP / PDFファイルを作成する方法
PHPでZIPファイル化する方法やPDFファイル出力する方法を過去に書いたが、何 ...
-
-
PHPでテンプレートPDFに動的に文字や数値を追記し出力する方法(TCPDF&FPDI)
請求書や領収書のテンプレートがあり、そちらに対して動的に文字・数値を追記し出力さ ...
-
-
FPDIで「This PDF document probably uses~~」エラーの対処方法
FPIDであるPDFを読み込ませようとすると「This PDF document ...
-
-
PHPにてHTML / 画像ファイルをPDFファイル化する方法(mPDF)
PHPにてHTML / 画像ファイルをPDFファイル化したい。検索してみるもサー ...
-
-
PHPでテンプレートPDFにリンク付きの文字を追記する方法(TCPDF&FPDI)
以前、PHPのTCPDF&FPDIを用いてテンプレートPDFに対し、動的 ...