勉強したことのメモ

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

  関連記事

TCPDF「Could not include font definition」エラーの対処方法
TCPDF「Could not include font definition」エラーの対処方法

TCPDFでフォントを「arialunicid0」に指定したところ「TCPDF ...

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

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

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

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

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

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

PHPでパスワード付きのZIP / PDFファイルを作成する方法
PHPでパスワード付きのZIP / PDFファイルを作成する方法

PHPでZIPファイル化する方法やPDFファイル出力する方法を過去に書いたが、何 ...