勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PDFファイルを直接リンクさせずにPHP経由で表示もしくはダウンロードさせる方法

  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

  関連記事

PHPでテンプレートPDFに動的に文字や数値を追記し出力する方法(TCPDF&FPDI)
PHPでテンプレートPDFに動的に文字や数値を追記し出力する方法(TCPDF&FPDI)

請求書や領収書のテンプレートがあり、そちらに対して動的に文字・数値を追記し出力さ ...

mpdfで「The /e modifier is …」エラー発生時の対応方法
mpdfで「The /e modifier is …」エラー発生時の対応方法

pdf関連のPHPライブラリ「mPDF」を使っているページがエラーログにのってお ...

PHPにてHTML / 画像ファイルをPDFファイル化する方法(mPDF)
PHPにてHTML / 画像ファイルをPDFファイル化する方法(mPDF)

PHPにてHTML / 画像ファイルをPDFファイル化したい。検索してみるもサー ...

TCPDFに任意の日本語フォント(Noto Sans JP)を追加する方法
TCPDFに任意の日本語フォント(Noto Sans JP)を追加する方法

TCPDFはデフォルトで6つの日本語フォントが用意されているっぽいが、それら以外 ...

PHPでテンプレートPDFにリンク付きの文字を追記する方法(TCPDF&FPDI)
PHPでテンプレートPDFにリンク付きの文字を追記する方法(TCPDF&FPDI)

以前、PHPのTCPDF&FPDIを用いてテンプレートPDFに対し、動的 ...