Open In App

How to make PDF file downloadable in HTML link using PHP ?

Last Updated : 09 Apr, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

In web development, it is common to provide users with downloadable resources, such as PDF files. If you want to create a downloadable PDF link using HTML and PHP, this article will guide you through the process of making a PDF file downloadable when the user clicks on a link.

Approach

  • Create an HTML link pointing to the PHP script with the PDF file name.
  • In PHP, retrieve the file name from the query string and add .pdf.
  • Check if the file exists before proceeding.
  • Set headers to force the browser to download the file.
  • Read and output the file in chunks to the browser.

Steps to Create the PDF file downloadable

Step 1: Create an HTML Link for the PDF Download

The first step is to create an HTML link that will trigger the PDF download. You can use a simple anchor tag (<a>) to create this link. In this example, we create a link that, when clicked, will prompt the user to download a PDF file called gfgpdf.pdf.

html
</p><pre><code class="language-html">
<!DOCTYPE html>
<html>

<head>
    <title>Download PDF using PHP from HTML Link</title>
</head>

<body>
    <center>
        <h2 style="color:green;">Welcome To GFG</h2>
        <p><b>Click below to download PDF</b>
        </p>
        <a href="downloadpdf.php?file=gfgpdf">Download PDF Now</a>
    </center>
</body>

</html>
</code></pre><p></p><h3 style="text-align:left"><b><strong>Step 2: PHP Script to Handle the Download (downloadpdf.php)</strong></b></h3><p dir="ltr"><span>Next, you need to create the PHP script that will handle the download logic.</span><gfg-tabs data-mode="light" data-run-ide="false"><gfg-tab slot="tab">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(); // This doesn't really matter.

$fp = fopen($file, "r");
while (!feof($fp)) {
    echo fread($fp, 65536);
    flush(); // This is essential for large downloads
} 

fclose($fp); 
?>

Output:

In this example:

  • Creates a Download Link: The HTML provides a link that users can click to download a PDF.
  • Passes PDF Name via URL: The link (<a href=”downloadpdf.php?file=gfgpdf”>) sends the file=gfgpdf parameter to the downloadpdf.php script.
  • Gets File Name from URL: The PHP script takes the file name from the URL parameter ($_GET[“file”]) and appends .pdf to it ($file = $_GET[“file”] . “.pdf”).
  • Sets Download Headers: The script sends headers to the browser, prompting it to treat the file as an attachment for download.
  • Reads and Sends File: The PHP script opens the file, reads it in chunks, and sends it to the browser for download, using fread() and flush() to handle large files.
  • Together, the HTML link and PHP script allow a user to click a link to download a specific

Conclusion

Making a PDF file downloadable in HTML using PHP is a straightforward process. By setting up a link in your HTML page that points to a PHP script, you can provide users with a seamless way to download PDF files. The key here is to use the serialize() and unserialize() functions for handling complex data storage efficiently, while also ensuring security and proper handling of files on the server.


Next Article

Similar Reads