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側でパラメータを受け取ってファイルの出し分け等も可能となる。
関連記事
-
-
PhpSpreadsheetで作成したエクセルファイルをPDFファイルに変換する方法
以前にPhpSpreadsheetでフォーマット用のエクセルを読み込み、指定した ...
-
-
mpdfで「The /e modifier is …」エラー発生時の対応方法
pdf関連のPHPライブラリ「mPDF」を使っているページがエラーログにのってお ...
-
-
TCPDF「Could not include font definition」エラーの対処方法
TCPDFでフォントを「arialunicid0」に指定したところ「TCPDF ...
-
-
TCPDFに任意の日本語フォント(Noto Sans JP)を追加する方法
TCPDFはデフォルトで6つの日本語フォントが用意されているっぽいが、それら以外 ...
-
-
PHPにてHTML / 画像ファイルをPDFファイル化する方法(mPDF)
PHPにてHTML / 画像ファイルをPDFファイル化したい。検索してみるもサー ...