To Download PDF from HTML link using PHP with the help of header() function in php. The header()function is used to send a raw HTTP header. Sometimes it wants the user to be prompted to save the data such as generated PDF.
Syntax:
header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename="downloaded.pdf"');
header("Content-Length: " . filesize("download.pdf"));
readfile('original.pdf');
.
Note: Remember that HTTP header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file or from PHP.
Example 1: Save below HTML file as htmllinkpdf.html and save PHP file as downloadpdf.php
- Below example to illustrate concept of downloading PDF file using HTML link.
- Here downloading file appears to be PDF format but without any content which shows error on opening in any application
- HTML code:
<!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
=
"gfgpdf.php?file=gfgpdf"
>Download PDF Now</
a
></
center
>
</
body
>
</
html
>
- PHP code:
<?php
$file
=
$_GET
[
"file"
] .
".pdf"
;
// We will be outputting a PDF
header(
'Content-Type: application/pdf'
);
// It will be called downloaded.pdf
header(
'Content-Disposition: attachment; filename="gfgpdf.pdf"'
);
$imagpdf
=
file_put_contents
(
$image
,
file_get_contents
(
$file
));
echo
$imagepdf
;
?>
- Output:
Below example illustrates the concept of downloading PDF file locally (i.e. read gfgpdf.pdf file from local ) using HTML link.
Example 2: Save HTML file as htmllinkpdf.html and save PHP file as downloadpdf.php
- HTML code:
<!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
>
- PHP code:
<?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:
PHP is a server-side scripting language designed specifically for web development. You can learn PHP from the ground up by following this PHP Tutorial and PHP Examples.