PHP を使用して HTML 形式の PDF ファイルをダウンロードする

John Wachira 2024年2月15日
  1. PHP での header() 関数の構文
  2. PHP を使用して HTML リンク付きの PDF をダウンロード
PHP を使用して HTML 形式の PDF ファイルをダウンロードする

このチュートリアルでは、PHP を使用して PDF ファイルを HTML リンクでダウンロード可能にする手順について説明します。 PHP の header() 関数を使用して、ユーザーに PDF ファイルを保存するよう促します。

PHP での header() 関数の構文

  1. 以下のヘッダーは、任意のアプリケーションをダウンロードします。

    header("Content-Type: application/octet-stream");
    
  2. 以下のヘッダーは、構成とダウンロード可能なファイルを設定します。

    header('Content-Disposition: attachment; filename="Delft.pdf"');
    
  3. 以下のヘッダーは、ファイルのサイズを示しています。

    header("Content-Length: " . filesize("Delft.pdf"));
    

PHP を使用して HTML リンク付きの PDF をダウンロード

次の例では、PHP スクリプトを使用して HTML で PDF(Delft.pdf) をダウンロードしようとします。 Delft.pdf ファイルは空で、開くとエラーが表示されます。プロセスの進め方を写真で示します。

コード例 - HTML スクリプト:

<!DOCTYPE html>
<html>
   <head>
      <title>Download PDF using PHP from HTML Link</title>
   </head>
   <body>
      <center>
         <h2 style="color:red;">Welcome To DELFT</h2>
         <p><b>Click below to download PDF</b></p>
         <a href="downloadpdf.php?file=Delft">Download PDF Now</a>
      </center>
   </body>
</html>

コード例 - PHP スクリプト:

<?php
$file = $_GET["file"] .".pdf";
// To Output a PDF file
header('Content-Type: application/pdf');
// PDF will be called Delft.pdf
header('Content-Disposition: attachment; filename="Delft.pdf"');
$imagpdf = file_put_contents($image, file_get_contents($file));
echo $imagepdf;
?>

出力;

PHP スクリプトを使用して HTML リンクで PDF をダウンロード

PHP スクリプト出力を使用して HTML リンクで PDF をダウンロード

リンクは Delft.pdf ファイルをダウンロードしますが、ファイルが空であるため、開こうとするとエラーが発生します。 これが、PHP を使用して HTML リンクで PDF ファイルをダウンロードする基本的な概念です。

Delft.pdf ファイルをローカル マシンからダウンロードして読んでみましょう。 次の例では、HTML リンクを使用して PDF ファイルをローカルにダウンロードしようとします。

コード例 - HTML スクリプト:

<!DOCTYPE html>
<html>
   <head>
      <title>Download PDF using PHP from HTML Link</title>
   </head>
   <body>
      <center>
         <h2 style="color:blue;">Welcome To DELFTSTACK</h2>
         <p><b>Click below to download PDF</b></p>
         <a href="downloadpdf.php?file=Delft">Download PDF Now</a>
      </center>
   </body>
</html>

コード例 - PHP スクリプト:

<?php
header("Content-Type: application/octet-stream");
$file = $_GET["file"] . ".pdf";
header("Content-Disposition: attachment; filename=" . urlencode($file));
header("Content-Type: application/download");
header("Content-Description: File Transfer");
header("Content-Length: " . filesize($file));
flush(); // Not a must.
$fp = fopen($file, "r");
while (!feof($fp)) {
echo fread($fp, 65536);
flush(); // This is essential for large downloads
}
fclose($fp);
?>

出力;

HTML リンクでローカルに PDF ファイルをダウンロード

HTML リンク出力で PDF ファイルをローカルにダウンロード

リンクは Delft.pdf ファイルをダウンロードし、ファイルを正常に開きます。 出力を送信する前に、常にヘッダーを呼び出します。

著者: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn