How to display a PDF file in PHP from the database

In this article, you will learn how to display a PDF file on a webpage using the PHP programming language.

PDF is one of the most trusted document formats. PHP provides simple functionality to embed PDF files. It has a very simple implementation. Here, we have mentioned two ways to display PDFs on a web page. It depends on what you want to show. If you want to include a PDF as a subpart of a web page, use an iframe as described in Method 1. If you want to make the PDF a whole web page, then use the header() function as we mentioned in Method 2.









Method 1

Suppose we have a 'infopdf' TABLE in the Database as follows. You can use your existing database or copy and paste this into MySQL.

CREATE TABLE IF NOT EXISTS `infopdf` (
  `fileid` int(11) NOT NULL AUTO_INCREMENT,
  `filename` varchar(150) NOT NULL,
  `directory` varchar(150) NOT NULL,
  `created_date` date NOT NULL,
  PRIMARY KEY (`fileid`)
)
INSERT INTO `infopdf` (`fileid`, `filename`, `directory`, `created_date`) VALUES
(1, 'etp.pdf', '/document/', '2019-07-12');





Now, create a PHP file 'index.php' and write the database connection code at the top. For this, we are using Object Oriented PHP MySQLi connection code. Then, fetch the pdf file name and directory using the select statement. To embed the PDF on a web page, we use the iframe element.

<?php
// Database Connection 
$conn = new mysqli('hostname', 'username', 'password', 'database');
//Check for connection error
$select = "SELECT * FROM `infopdf`";
$result = $conn->query($select);
while($row = $result->fetch_object()){
  $pdf = $row->filename;
  $path = $row->directory;
  $date = $row->created_date;
}

echo '<h1>Here is the information PDF</h1>';
echo '<strong>Created Date : </strong>'.$date;
echo '<strong>File Name : </strong>'.$pdf;
?>
<br/><br/>
<iframe src="<?php echo $path.$pdf; ?>" width="90%" height="500px">
</iframe>

Here is the PDF file displayed on the webpage that is fetched from the MySQL database table using the PHP code:

How to display PDF file in PHP from database



Method 2

In the above method, we have embedded a PDF in an iframe. This is basically used when we have to show a pdf in addition to the web contents. But if you want to display PDF as the whole content of a webpage, then it's better to use the header() function. In the below example, we have added the header() function and set the file 'Content-type', 'Content-Disposition', and 'Content-Transfer-Encoding'. We have used the PHP predefined readfile() function to read the file and added an error control operator (@) in front of it. When this operator pretends to an expression, any error or warning that might be generated by this expression will be ignored.

<?php
// Database Connection 
$conn = new mysqli('hostname', 'username', 'password', 'database');
//Check for connection error
$select = "SELECT * FROM `infopdf`";
$result = $conn->query($select);
while($row = $result->fetch_object()){
  $pdf = $row->filename;
  $path = $row->directory;
  $date = $row->created_date;
  $file = $path.$pdf;
}
// Add header to load pdf file
header('Content-type: application/pdf'); 
header('Content-Disposition: inline; filename="' .$file. '"'); 
header('Content-Transfer-Encoding: binary'); 
header('Accept-Ranges: bytes'); 
@readfile($file);  
?>

Here is the PDF file displayed on the webpage that is fetched from the MySQL database table using the PHP code:

How to display PDF file in PHP from database







Related Articles

PHP SplFileObject Standard Library
Simple File Upload Script in PHP
Sending form data to an email using PHP
Recover forgot password using PHP and MySQL
Php file based authentication
Simple PHP File Cache
PHP sanitize input for MySQL
PHP random quote generator
PHP String Contains
PHP calculate percentage of total
PHP Fix: invalid argument supplied for foreach
Locking files with flock()
How to Pass an Array as URL Parameter in PHP
How to generate pdf in PHP using MySQL and MPDF Library
How to Export MySQL Table data as CSV file in PHP
Read CSV file & Import data into MySQL with PHP
Save an emoji in MySQL using PHP
Google reCAPTCHA v2 PHP example
Fetch data from database in PHP and display in PDF
How to create a PDF from a form using PHP
Form Validation with PHP








Read more articles


General Knowledge



Learn Popular Language